@IgorRastvorov

Соблюдение принципа OCP относительно контроллера при раработке Android-приложений?

Собственно, возник такой вопрос. Этот принцип соблюдается при проектировании бизнес-сущностей (т.е моделей в MVC-паттерне), а вот при проектировании активностей принцип открытости/закрытости соблюсти не очень получается. Связано ли это с тем, что контроллер не является объектом, моделирующим некоторую сущность предметной области?

Пример кода, где этот принцип нарушен:
class MainActivity extends Activity
{
         private void someMethod()
         {
                  SuperClassName objectName = new SubClassName(); // здесь нарушается принцип OCP 
                  ...
         }
}


Конечно, чтобы решить эту проблему можно передать в качестве параметра ссылку на производный класс в метод "someMethod". Толко вот делать это должен клиентский код. Видимо, активность уже и является клиентским кодом. Так?

Пример кода, где этот принцип соблюден:
class MainActivity extends Activity
{
         private void someMethod(SuperClassName objectName)
         {
                  objectName.methodName();
                  ...
         }
}


  • Вопрос задан
  • 2514 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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