Skip to content

Commit 68e495a

Browse files
update design pattern
1 parent 63dd648 commit 68e495a

22 files changed

Lines changed: 353 additions & 0 deletions
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.examplehub.designpatterns.decorator;
2+
3+
public class Decorator implements Readable{
4+
Readable readable;
5+
6+
public Decorator(Readable readable) {
7+
this.readable = readable;
8+
}
9+
10+
@Override
11+
public void read() {
12+
readable.read();
13+
System.out.println("I not have enough power");
14+
}
15+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.examplehub.designpatterns.decorator;
2+
3+
public class Machine implements Readable{
4+
@Override
5+
public void read() {
6+
System.out.println("I'm reading");
7+
}
8+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.examplehub.designpatterns.decorator;
2+
3+
public interface Readable {
4+
void read();
5+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.examplehub.designpatterns.factory;
2+
3+
public class EmailSender implements Sender{
4+
@Override
5+
public String send(String message) {
6+
return "email:" + message;
7+
}
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.examplehub.designpatterns.factory;
2+
3+
public class EmailSenderFactory implements SenderFactory{
4+
@Override
5+
public Sender build() {
6+
return new EmailSender();
7+
}
8+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.examplehub.designpatterns.factory;
2+
3+
public class NormalSenderFactory {
4+
public Sender build(String senderType) {
5+
switch (senderType) {
6+
case "email":
7+
return new EmailSender();
8+
case "sms":
9+
return new SmsSender();
10+
default:
11+
return null;
12+
}
13+
}
14+
15+
public Sender build(SenderType senderType) {
16+
switch (senderType) {
17+
case EMAIL_SENDER:
18+
return new EmailSender();
19+
case SMS_SENDER:
20+
return new SmsSender();
21+
default:
22+
return null;
23+
}
24+
}
25+
26+
public Sender buildEmailSender() {
27+
return new EmailSender();
28+
}
29+
30+
public Sender buildSmsSender() {
31+
return new SmsSender();
32+
}
33+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.examplehub.designpatterns.factory;
2+
3+
public interface Sender {
4+
String send(String message);
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.examplehub.designpatterns.factory;
2+
3+
public interface SenderFactory {
4+
Sender build();
5+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.examplehub.designpatterns.factory;
2+
3+
public enum SenderType {
4+
EMAIL_SENDER,
5+
SMS_SENDER
6+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.examplehub.designpatterns.factory;
2+
3+
public class SmsSender implements Sender{
4+
@Override
5+
public String send(String message) {
6+
return "sms:" + message;
7+
}
8+
}

0 commit comments

Comments
 (0)