Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cf71acc

Browse files
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
Lines changed: 37 additions & 0 deletions
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+
}
Lines changed: 33 additions & 0 deletions
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+
}
Lines changed: 17 additions & 0 deletions
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‎

Lines changed: 6 additions & 0 deletions
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‎

Lines changed: 17 additions & 0 deletions
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+
}
Lines changed: 33 additions & 0 deletions
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+
}
Lines changed: 22 additions & 0 deletions
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+
}
Lines changed: 33 additions & 0 deletions
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+
}
Lines changed: 15 additions & 0 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /