Skip to content

Commit 092edfc

Browse files
author
Aleksandr Gromov
committed
new commit
1 parent 334da83 commit 092edfc

18 files changed

+220
-0
lines changed

java8Module/src/main/java/patterns/Main.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package patterns;
22

3+
import patterns.abstractfactory.AbstractWidgetFactory;
4+
import patterns.abstractfactory.GUIBuilder;
5+
import patterns.abstractfactory.MacOSXWidgetFactory;
6+
import patterns.abstractfactory.MsWindowsWidgetFactory;
7+
import patterns.builder.*;
38
import patterns.composite.CompositeCircle;
49
import patterns.composite.GraphicsClient;
510
import patterns.flyweight.LineFlyweight;
@@ -32,5 +37,29 @@ public static void main(String[] args) {
3237
graphicsClient.paint(new CompositeCircle());
3338
/* END Composite design pattern */
3439

40+
/* START Builder design pattern */
41+
boolean isKid = false;
42+
MealDirector director = new MealDirector();
43+
MealBuilder builder;
44+
if (isKid) {
45+
builder = new KidsMealBuilder();
46+
}
47+
else{
48+
builder = new AdultMealBuilder();
49+
}
50+
Meal meal = director.createMeal(builder);
51+
/* END Builder design pattern */
52+
53+
/* START Abstract factory design pattern */
54+
GUIBuilder builder1 = new GUIBuilder();
55+
AbstractWidgetFactory widgetFactory = null;
56+
//check what platform we're on
57+
if(Platform.currentPlatform()=="MACOSX"){
58+
widgetFactory = new MacOSXWidgetFactory();
59+
} else {
60+
widgetFactory = new MsWindowsWidgetFactory();
61+
}
62+
builder1.buildWindow(widgetFactory);
63+
/* END Abstract factory design pattern */
3564
}
3665
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package patterns.abstractfactory;
2+
3+
public interface AbstractWidgetFactory {
4+
public Window createWindow();
5+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package patterns.abstractfactory;
2+
3+
public class GUIBuilder {
4+
public void buildWindow(AbstractWidgetFactory widgetFactory){
5+
Window window = widgetFactory.createWindow();
6+
window.setTitle("New Window");
7+
}
8+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package patterns.abstractfactory;
2+
3+
public class MSWindow implements Window {
4+
@Override
5+
public void setTitle(String text) {
6+
7+
}
8+
9+
@Override
10+
public void repaint() {
11+
12+
}
13+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package patterns.abstractfactory;
2+
3+
public class MacOSXWidgetFactory implements AbstractWidgetFactory {
4+
@Override
5+
public Window createWindow() {
6+
return new MacOSXWindow();
7+
}
8+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package patterns.abstractfactory;
2+
3+
public class MacOSXWindow implements Window {
4+
@Override
5+
public void setTitle(String text) {
6+
7+
}
8+
9+
@Override
10+
public void repaint() {
11+
12+
}
13+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package patterns.abstractfactory;
2+
3+
public class MsWindowsWidgetFactory implements AbstractWidgetFactory {
4+
@Override
5+
public Window createWindow() {
6+
return new MSWindow();
7+
}
8+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package patterns.abstractfactory;
2+
3+
public interface Window {
4+
public void setTitle(String text);
5+
public void repaint();
6+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package patterns.builder;
2+
3+
/**
4+
* Created by aleks on 06.07.17.
5+
*/
6+
public class AdultMealBuilder extends MealBuilder {
7+
@Override
8+
public void buildDrink() {
9+
10+
}
11+
12+
@Override
13+
public void buildMain() {
14+
15+
}
16+
17+
@Override
18+
public void buildDessert() {
19+
20+
}
21+
22+
@Override
23+
public Meal getMeal() {
24+
return meal;
25+
}
26+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package patterns.builder;
2+
3+
/**
4+
* Created by aleks on 06.07.17.
5+
*/
6+
public class KidsMealBuilder extends MealBuilder {
7+
@Override
8+
public void buildDrink() {
9+
10+
}
11+
12+
@Override
13+
public void buildMain() {
14+
15+
}
16+
17+
@Override
18+
public void buildDessert() {
19+
20+
}
21+
22+
@Override
23+
public Meal getMeal() {
24+
return meal;
25+
}
26+
}

0 commit comments

Comments
 (0)