Skip to content

Commit cf71acc

Browse files
authored
Add files via upload
1 parent f21ae31 commit cf71acc

File tree

9 files changed

+213
-0
lines changed

9 files changed

+213
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package designPattern.Decorator;
2+
3+
public abstract class DecorateIcecream implements Icecream {
4+
Icecream icecream;
5+
}
6+
7+
class Chocolate extends DecorateIcecream{
8+
public Chocolate(Icecream icecream) {
9+
this.icecream = icecream;
10+
}
11+
12+
@Override
13+
public String description() {
14+
return "Chocolate";
15+
}
16+
17+
@Override
18+
public Double cost() {
19+
return this.icecream.cost() + 5.0;
20+
}
21+
}
22+
23+
class Peanuts extends DecorateIcecream{
24+
public Peanuts(Icecream icecream) {
25+
this.icecream = icecream;
26+
}
27+
28+
@Override
29+
public String description() {
30+
return "Peanuts";
31+
}
32+
33+
@Override
34+
public Double cost() {
35+
return this.icecream.cost() + 3.0;
36+
}
37+
}

designPattern/Decorator/Icecream.java

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package designPattern.Decorator;
2+
3+
public interface Icecream {
4+
public String description();
5+
6+
public Double cost();
7+
}
8+
9+
class Vanilla implements Icecream {
10+
11+
@Override
12+
public String description() {
13+
return "Vanila Icecream!";
14+
}
15+
16+
@Override
17+
public Double cost() {
18+
return 15.0;
19+
}
20+
}
21+
22+
class Strawberry implements Icecream {
23+
24+
@Override
25+
public String description() {
26+
return "Strawberry Icecream!";
27+
}
28+
29+
@Override
30+
public Double cost() {
31+
return 20.0;
32+
}
33+
}
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package designPattern.Decorator;
2+
3+
public class TestDecorator {
4+
5+
public static void main(String[] args) {
6+
Icecream vanilla = new Vanilla();
7+
System.out.println("Simple vanilla cost: " + vanilla.cost());
8+
9+
Icecream vanillaWithPeanuts = new Peanuts(vanilla);
10+
System.out.println("Vanilla with peanuts cost: " + vanillaWithPeanuts.cost());
11+
12+
Icecream vanillaWithChocolate = new Chocolate(vanilla);
13+
System.out.println("Vanilla with chocolate cost: " + vanillaWithChocolate.cost());
14+
15+
}
16+
17+
}

designPattern/Observer/Observer.java

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package designPattern.Observer;
2+
3+
public interface Observer {
4+
public void update(String message);
5+
public void display();
6+
}

designPattern/Observer/Student.java

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package designPattern.Observer;
2+
3+
public class Student implements Observer{
4+
5+
private String message;
6+
public Student(StudentData data) {
7+
data.registerObserver(this);
8+
}
9+
10+
public void update(String message) {
11+
this.message = message;
12+
display();
13+
}
14+
public void display() {
15+
System.out.println(this.message);
16+
}
17+
}
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package designPattern.Observer;
2+
3+
import java.util.ArrayList;
4+
5+
public class StudentData {
6+
private String message;
7+
private ArrayList<Observer> observers;
8+
9+
public StudentData() {
10+
observers = new ArrayList<>();
11+
}
12+
public void registerObserver(Observer o) {
13+
observers.add(o);
14+
}
15+
public void removeObserver(Observer o) {
16+
observers.remove(o);
17+
}
18+
19+
public void notifyObservers() {
20+
for(int i = 0; i < observers.size(); i++) {
21+
Observer obs = (Observer) observers.get(i);
22+
obs.update(message);
23+
}
24+
}
25+
26+
public void setMessage(String msg) {
27+
this.message = msg;
28+
}
29+
30+
public String getMessage() {
31+
return this.message;
32+
}
33+
}
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package designPattern.Observer;
2+
3+
public class TestObserver {
4+
5+
public static void main(String[] args) {
6+
StudentData data = new StudentData();
7+
Observer std = new Student(data);
8+
String msg = "Hello World";
9+
data.setMessage(msg);
10+
11+
if(!data.getMessage().equals("")) {
12+
data.notifyObservers();
13+
}
14+
15+
data.removeObserver(std);
16+
if(!data.getMessage().equals("")) {
17+
data.notifyObservers();
18+
}
19+
20+
}
21+
22+
}

designPattern/Singleton/Settings.java

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package designPattern.Singleton;
2+
3+
public class Settings {
4+
private static Settings firstObject = null;
5+
private String font = "calibri";
6+
private String color = "black";
7+
8+
private Settings() {
9+
}
10+
11+
public static Settings getObject() {
12+
if (firstObject == null) {
13+
firstObject = new Settings();
14+
}
15+
return firstObject;
16+
}
17+
18+
public void setFont(String fontName) {
19+
this.font = fontName;
20+
}
21+
22+
public void setColor(String colorName) {
23+
this.color = colorName;
24+
}
25+
26+
public String getFont() {
27+
return this.font;
28+
}
29+
30+
public String getColor() {
31+
return this.color;
32+
}
33+
}
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package designPattern.Singleton;
2+
3+
public class TestSetting {
4+
5+
public static void main(String[] args) {
6+
Settings setting = Settings.getObject();
7+
System.out.println("Setting Object Color: " + setting.getColor());
8+
System.out.println("Font: " + setting.getFont());
9+
Settings set1=Settings.getObject();
10+
set1.setColor("Red");
11+
System.out.println("Set Object Color: " + set1.getColor());
12+
System.out.println("Font: " + set1.getFont());
13+
System.out.println("Setting Object Color: " + setting.getColor());
14+
}
15+
}

0 commit comments

Comments
 (0)