Ситуация: предположим, что мы разрабатываем пользовательский интерфейс Windows 9 с использованием Java API. Нам необходимо создать 3 класса main
, BuildInWindow
и ApplicationWindow
.Как я могу применить шаблоны проектирования в этой ситуации?
main
- окно для визуализации пользовательского интерфейса системы (т.е. начала Боттона & обоев страница)
BuildInWindow
- окон для рендеринга buildt в приложениях (например, IE)
ApplicationWindow
- окна для визуализации приложений из третья сторона (например, затмение)
все они должны реализовать 3 интерфейсы API Java, WindowFocusListener
, WindowListener
и WindowStateListener
и имеют методы onExit()
и onCrushing()
.
onExit()
выполняет, когда система/встроенные приложения/третьи стороны приложения отключается нормально
onCrushing()
фиксирует любую систему/давку и отправить состояние системы обратно на сервер
Это оригинальный дизайн :
http://i.stack.imgur.com/JAJiY.png
у меня есть некоторые идеи о том, как разработать его в ОО манере, но я не уверен, что это правильный путь. Вот мои мысли:
- Создание
abstract class
методомonExit()
иonCrushing()
. Так как кодonExit()
будет варьироваться от 3-х классов, это должно бытьabstract method
&onCrushing()
будет же Ф.О. всех классов, так что это будет конкретный метод MAIN
ОКНО должны использоватьsingleton
дизайн, чтобы обеспечить пользователю создать только один экземплярmain
.- Используйте
facade
дизайн избавляет от реализации 3 интерфейса для трех классов
Моего вопроса я не очень понимаю, дизайна фасада, так что я не уверен, что он может быть применен в данном случае. Также я не уверен, что onExit()
будет отличаться для 3 классов, а onCrushing()
будет выполнять ту же функцию.
Я пробовал изо всех сил, чтобы четко объяснить вопрос ... если вы не понимаете, что свободно комментировать. Большое спасибо!
Почему они должны реализовывать 'A',' B' и 'C'? Это просто вопрос? Существуют ли методы '# onExit' и' onCrushing' на этих интерфейсах или вам нужно подумать о том, как их лучше всего обеспечить? – wmorrison365
Да, это просто вопрос (и я позаимствовал интерфейс и добавил изображение для легкого понимания). 'onExit' и' onCrushing' находятся в трех классах – absolutebeginner
, нам нужно только думать о связях классов и интерфейсов, а не о содержании методов. – absolutebeginner