Bridge Pattern

This commit is contained in:
kim
2021-01-14 16:43:01 +09:00
parent 8017dc6fef
commit 44537138fe
8 changed files with 127 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
Bridge Pattern
- 기능 계층과 구현 계층의 분리

View 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(" ");
}
}

View 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(" ");
}
}

View 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();
}
}

View 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();
}
}

View File

@@ -0,0 +1,8 @@
package Bridge;
public interface MorseCodeFunction {
void dot();
void dash();
void space();
}

View 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;
}
}

View 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("");
}
}