Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Давным давно, несколько десятков лет назад, чтобы запустить что-то, обычно не было экзешников, нужно было как минимум прописать батник с путями. Знакомство с бат и восхищение от того, что он позволял делать, было такое же, как у тебя сейчас, ностальгия, спасибо ?.

Мозг - это уникальный генератор случайностей, не важно, это числа, символы, любые объекты, все, что только можно представить.

А если людям дать всего две карты из колоды, что чаще будут загадывать..

(Это все лишь искусственные ограничения созданные самим человеком)

Фантазия человека не ограничивается 52 картами, она вобще ничем не ограничивается.

Таким образом, накладывая все больше и больше каких-либо ограничений, уменьшается шанс не предсказуемого поведения.

Вывод для всех мало приятный, все что противоречит общепринятым нормам и правилам, не может быть правдой. Все, что правда, должно быть в рамках определённых шаблонов и укладывается в определённые математические модели. Любые противоречия будут восприниматься, как "неопределённое поведение", что равнозначно, как ложь. Выглядит все, как планомерное программирование людей, со строгой логикой и явными алгоритмами поведения.

Сильно упрощённо переписал, теперь видно наглядно, "простым языком без лишних слов"..
    public interface ICar
    {
        string GetDescription();
        decimal Price();
    }

    
    public class ModelA : ICar
    {
        public string GetDescription()
        {
            return "ModelA";
        }

        public decimal Price()
        {
            return 40_000.034m;
        }
    }


    
    public abstract class CarDecorator : ICar
    {
        protected ICar _car;

        public CarDecorator(ICar car)
        {
            _car = car;
        }

        public virtual string GetDescription()
        {
            return _car.GetDescription();
        }

        public virtual decimal Price()
        {
            return _car.Price();
        }
    }


    
    public class AutomaticParkingSystem : CarDecorator
    {
        public AutomaticParkingSystem(ICar car) : base(car)
        {
        }

        public override string GetDescription()
        {
            return $"{_car.GetDescription()}, new automatic parking system";
        }

        public override decimal Price()
        {
            return _car.Price() + 2_300.4m;
        }
    }

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность