Задать вопрос
@Vladislav_Bochkarev

Какие принципы ООП нарушает такой подход?

namespace TemporaryProj
{
    class SomeClassImpl
    {
        public int Field = 5;
        public string str = "I am hidden a lot!";
        public void SayHello()
        {
            Console.WriteLine("Hi dear!");
        }
    }
    class SomeClass
    {
        protected SomeClassImpl impl = new SomeClassImpl();
        public void GetAccessIfItIsImportant(Action<SomeClassImpl> action)
        {
            action?.Invoke(impl);
        }
    }
        class TmpProj
        {
        static void Main(string[] args)
        {
            SomeClass some = new SomeClass();
            some.GetAccessIfItIsImportant((SomeClassImpl impl) => 
            {
                impl.Field = 40;
                Console.WriteLine(impl.str + impl.Field);
                impl.SayHello();
            });
        }

        }
    }


Часто, когда я использую паттерн Bridge, мне приходится делать такие махинации с реализацией.
Я понимаю, конечно, что это не правильно, но уж очень удобно использовать такой подход "доверия" к программисту со стороны, который захочет поковырять реализацию в каких-нибудь особенных случаях.
Просто правильно ли это?
  • Вопрос задан
  • 386 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы