Re: Корректность ООП решений
От: Буравчик Россия  
Дата: 24.06.21 05:16
Оценка: 2 (1) +1
Здравствуйте, varenikAA, Вы писали:

AA>Код C#.


Вопрос-то в чем? Что ты подразумеваешь под корректностью?

AA>Имеем модульную архитектуру с базовой реализацией модуля(0 вариант(:

AA>может так(1 вариант(:
AA>или так(2 вариант(:

Как минимум есть еще вариант вообще без использования наследования.
interface IModule:
  def start()

class Module implements IModule:
  start()

fun main(modules: List[IModule]):
  for m in modules:
    m.start()
    log('start')


См. template method vs strategy, inheritance vs aggregation

Как развитие этого подхода — можно написать адаптер, превращающий обычный модуль в логированный модуль.
class LoggedModule implements IModule:
  def constructor(module: IModule):
    ...

  def start():
    module.start()
    log('start')
}
Best regards, Буравчик
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.