Bridge Pattern
This commit is contained in:
2
design-pattern/src/Bridge/Bridge
Normal file
2
design-pattern/src/Bridge/Bridge
Normal file
@@ -0,0 +1,2 @@
|
||||
Bridge Pattern
|
||||
- 기능 계층과 구현 계층의 분리
|
||||
18
design-pattern/src/Bridge/DefaultMCF.java
Normal file
18
design-pattern/src/Bridge/DefaultMCF.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package Bridge;
|
||||
|
||||
public class DefaultMCF implements MorseCodeFunction{
|
||||
@Override
|
||||
public void dot() {
|
||||
System.out.print(".");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dash() {
|
||||
System.out.print("-");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void space() {
|
||||
System.out.print(" ");
|
||||
}
|
||||
}
|
||||
18
design-pattern/src/Bridge/FlashMCF.java
Normal file
18
design-pattern/src/Bridge/FlashMCF.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package Bridge;
|
||||
|
||||
public class FlashMCF implements MorseCodeFunction{
|
||||
@Override
|
||||
public void dot() {
|
||||
System.out.print("#");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dash() {
|
||||
System.out.print("-*-");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void space() {
|
||||
System.out.print(" ");
|
||||
}
|
||||
}
|
||||
9
design-pattern/src/Bridge/Main.java
Normal file
9
design-pattern/src/Bridge/Main.java
Normal file
@@ -0,0 +1,9 @@
|
||||
package Bridge;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
PrintMorseCode code = new PrintMorseCode(new FlashMCF());
|
||||
|
||||
code.g().a().r().a().m();
|
||||
}
|
||||
}
|
||||
26
design-pattern/src/Bridge/MorseCode.java
Normal file
26
design-pattern/src/Bridge/MorseCode.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package Bridge;
|
||||
|
||||
public class MorseCode {
|
||||
|
||||
private MorseCodeFunction function;
|
||||
|
||||
public MorseCode(MorseCodeFunction function) {
|
||||
this.function = function;
|
||||
}
|
||||
|
||||
public void setFunction(MorseCodeFunction function) {
|
||||
this.function = function;
|
||||
}
|
||||
|
||||
public void dot(){
|
||||
function.dot();
|
||||
}
|
||||
|
||||
public void dash() {
|
||||
function.dash();
|
||||
}
|
||||
|
||||
public void space() {
|
||||
function.space();
|
||||
}
|
||||
}
|
||||
8
design-pattern/src/Bridge/MorseCodeFunction.java
Normal file
8
design-pattern/src/Bridge/MorseCodeFunction.java
Normal file
@@ -0,0 +1,8 @@
|
||||
package Bridge;
|
||||
|
||||
public interface MorseCodeFunction {
|
||||
|
||||
void dot();
|
||||
void dash();
|
||||
void space();
|
||||
}
|
||||
28
design-pattern/src/Bridge/PrintMorseCode.java
Normal file
28
design-pattern/src/Bridge/PrintMorseCode.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package Bridge;
|
||||
|
||||
public class PrintMorseCode extends MorseCode {
|
||||
|
||||
public PrintMorseCode(MorseCodeFunction function) {
|
||||
super(function);
|
||||
}
|
||||
|
||||
public PrintMorseCode g() {
|
||||
dash();dash();dot();space();
|
||||
return this;
|
||||
}
|
||||
|
||||
public PrintMorseCode a() {
|
||||
dot();dash();space();
|
||||
return this;
|
||||
}
|
||||
|
||||
public PrintMorseCode r() {
|
||||
dot();dash();dot();space();
|
||||
return this;
|
||||
}
|
||||
|
||||
public PrintMorseCode m() {
|
||||
dash();dash();space();
|
||||
return this;
|
||||
}
|
||||
}
|
||||
18
design-pattern/src/Bridge/SoundMCF.java
Normal file
18
design-pattern/src/Bridge/SoundMCF.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package Bridge;
|
||||
|
||||
public class SoundMCF implements MorseCodeFunction {
|
||||
@Override
|
||||
public void dot() {
|
||||
System.out.print("삣");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dash() {
|
||||
System.out.print("삐~");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void space() {
|
||||
System.out.print("음");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user