File tree Expand file tree Collapse file tree 7 files changed +81
-0
lines changed
src/ua/kay/patterns/facade Expand file tree Collapse file tree 7 files changed +81
-0
lines changed Original file line number Diff line number Diff line change 127
127
- динамическое и понятное клиентам добавление обязаностей объектам;
128
128
- реализация обязанностей, которые могут быть сняты с объекта;
129
129
- рассширение класса путем порождения подклассов невозможно по каким-либо причинам.
130
+
131
+ Шаблон: Фасад (Facade)
132
+ ===============================================================================================
133
+ ** Цель:**
134
+ Предоставить унифицированный интерфейс вместо нескольких интерфейсов системы.
135
+
136
+ ** Для чего используется:**
137
+ Используется для определения интерфейса высокого уровня, который упрощает использование подсистемы.
138
+
139
+ ** Пример использования:**
140
+ - изолирование клиентов от компонентов подсистемы, упрощая работу с ней;
141
+ - необходимость ослабления связанности подсистемы с клиентами.
Original file line number Diff line number Diff line change
1
+ package ua .kay .patterns .facade ;
2
+
3
+ public class BugTracker {
4
+ private boolean activeSprint ;
5
+
6
+ public boolean isActiveSprint () {
7
+ return activeSprint ;
8
+ }
9
+
10
+ public void startSprint () {
11
+ System .out .println ("Sprint is active!" );
12
+ this .activeSprint = true ;
13
+ }
14
+
15
+ public void finishSprint () {
16
+ System .out .println ("Sprint is NOT active!" );
17
+ this .activeSprint = false ;
18
+ }
19
+ }
Original file line number Diff line number Diff line change
1
+ package ua .kay .patterns .facade ;
2
+
3
+ public class Developer {
4
+ public void doJobBeforeDeadline (BugTracker bugTracker ) {
5
+ if (bugTracker .isActiveSprint ()) {
6
+ System .out .println ("Developer is solving problems..." );
7
+ } else {
8
+ System .out .println ("Developer is reading books..." );
9
+ }
10
+ }
11
+ }
Original file line number Diff line number Diff line change
1
+ package ua .kay .patterns .facade ;
2
+
3
+ public class Job {
4
+ public void doJob () {
5
+ System .out .println ("Job in progress..." );
6
+ }
7
+ }
Original file line number Diff line number Diff line change
1
+ Шаблон: Фасад (Facade)
2
+ ===============================================================================================
3
+ ** Цель:**
4
+ Предоставить унифицированный интерфейс вместо нескольких интерфейсов системы.
5
+
6
+ ** Для чего используется:**
7
+ Используется для определения интерфейса высокого уровня, который упрощает использование подсистемы.
8
+
9
+ ** Пример использования:**
10
+ - изолирование клиентов от компонентов подсистемы, упрощая работу с ней;
11
+ - необходимость ослабления связанности подсистемы с клиентами.
Original file line number Diff line number Diff line change
1
+ package ua .kay .patterns .facade ;
2
+
3
+ public class SprintRunner {
4
+ public static void main (String [] args ) {
5
+ WorkFlow workFlow = new WorkFlow ();
6
+ workFlow .solveProblems ();
7
+ }
8
+ }
Original file line number Diff line number Diff line change
1
+ package ua .kay .patterns .facade ;
2
+
3
+ public class WorkFlow {
4
+ Job job = new Job ();
5
+ BugTracker bugTracker = new BugTracker ();
6
+ Developer developer = new Developer ();
7
+
8
+ public void solveProblems () {
9
+ job .doJob ();
10
+ bugTracker .startSprint ();
11
+ developer .doJobBeforeDeadline (bugTracker );
12
+ }
13
+ }
You can’t perform that action at this time.
0 commit comments