File tree Expand file tree Collapse file tree 13 files changed +198
-0
lines changed
spring-toby/spring-project/src/main/java/com/javabom/toby/chapter5/term Expand file tree Collapse file tree 13 files changed +198
-0
lines changed Original file line number Diff line number Diff line change 1+ package com .javabom .toby .chapter5 .term .미디에이터패턴 ;
2+
3+ import com .javabom .toby .chapter5 .term .미디에이터패턴 .airplane .Boeing ;
4+ import com .javabom .toby .chapter5 .term .미디에이터패턴 .airplane .JejuAir ;
5+ import com .javabom .toby .chapter5 .term .미디에이터패턴 .mediator .AirMediator ;
6+ import com .javabom .toby .chapter5 .term .미디에이터패턴 .mediator .Airport ;
7+
8+ public class MediatorPatternMain {
9+ public static void main (String [] args ) {
10+ AirMediator airMediator = new Airport ();
11+
12+ Boeing boeing = new Boeing (airMediator );
13+ JejuAir jejuAir = new JejuAir (airMediator );
14+
15+ airMediator .addAirPlane (boeing );
16+ airMediator .addAirPlane (jejuAir );
17+
18+ boeing .tryLanding ();
19+ jejuAir .tryLanding ();
20+ }
21+ }
Original file line number Diff line number Diff line change 1+ package com .javabom .toby .chapter5 .term .미디에이터패턴 .airplane ;
2+
3+ import com .javabom .toby .chapter5 .term .미디에이터패턴 .mediator .AirMediator ;
4+
5+ public abstract class AirPlane {
6+ AirMediator airMediator ;
7+
8+ public abstract String getState ();
9+
10+ public abstract String getName ();
11+
12+ public void tryLanding () {
13+ boolean isPossible = airMediator .alert (this );
14+
15+ System .out .println (getName () + "try landing : " + isPossible );
16+ }
17+ }
Original file line number Diff line number Diff line change 1+ package com .javabom .toby .chapter5 .term .미디에이터패턴 .airplane ;
2+
3+ import com .javabom .toby .chapter5 .term .미디에이터패턴 .mediator .AirMediator ;
4+
5+ public class Boeing extends AirPlane {
6+ public Boeing (AirMediator airMediator ) {
7+ this .airMediator = airMediator ;
8+ }
9+
10+ @ Override
11+ public String getName () {
12+ return "Boeing Airplane" ;
13+ }
14+
15+ @ Override
16+ public String getState () {
17+ return "LANDING" ;
18+ }
19+ }
Original file line number Diff line number Diff line change 1+ package com .javabom .toby .chapter5 .term .미디에이터패턴 .airplane ;
2+
3+ import com .javabom .toby .chapter5 .term .미디에이터패턴 .mediator .AirMediator ;
4+
5+ public class JejuAir extends AirPlane {
6+ public JejuAir (AirMediator airMediator ) {
7+ this .airMediator = airMediator ;
8+ }
9+
10+ @ Override
11+ public String getName () {
12+ return "Jeju Airplane" ;
13+ }
14+
15+ @ Override
16+ public String getState () {
17+ return "FLIGHT" ;
18+ }
19+ }
Original file line number Diff line number Diff line change 1+ package com .javabom .toby .chapter5 .term .미디에이터패턴 .mediator ;
2+
3+ import com .javabom .toby .chapter5 .term .미디에이터패턴 .airplane .AirPlane ;
4+
5+ public interface AirMediator {
6+ void addAirPlane (AirPlane airPlane );
7+
8+ boolean alert (AirPlane airPlane );
9+ }
Original file line number Diff line number Diff line change 1+ package com .javabom .toby .chapter5 .term .미디에이터패턴 .mediator ;
2+
3+ import com .javabom .toby .chapter5 .term .미디에이터패턴 .airplane .AirPlane ;
4+
5+ import java .util .ArrayList ;
6+ import java .util .List ;
7+
8+ public class Airport implements AirMediator {
9+ private List <AirPlane > airPlanes ;
10+
11+ public Airport () {
12+ airPlanes = new ArrayList <>();
13+ }
14+
15+ @ Override
16+ public void addAirPlane (final AirPlane airPlane ) {
17+ this .airPlanes .add (airPlane );
18+ }
19+
20+ @ Override
21+ public boolean alert (final AirPlane airPlane ) {
22+ return airPlanes .stream ()
23+ .filter (cur -> !cur .equals (airPlane ))
24+ .map (AirPlane ::getState )
25+ .anyMatch (state -> state .equals ("FLIGHT" ));
26+ }
27+ }
Original file line number Diff line number Diff line change 1+ package com .javabom .toby .chapter5 .term .브릿지_패턴 ;
2+
3+ import com .javabom .toby .chapter5 .term .브릿지_패턴 .draw .Draw ;
4+ import com .javabom .toby .chapter5 .term .브릿지_패턴 .draw .PencilDraw ;
5+ import com .javabom .toby .chapter5 .term .브릿지_패턴 .draw .BrushDraw ;
6+ import com .javabom .toby .chapter5 .term .브릿지_패턴 .shape .Ellipse ;
7+ import com .javabom .toby .chapter5 .term .브릿지_패턴 .shape .Square ;
8+
9+ public class BridgePatternMain {
10+ public static void main (String [] args ) {
11+ Draw pencilDraw = new PencilDraw ();
12+ Draw brushDraw = new BrushDraw ();
13+
14+ Ellipse ellipse = new Ellipse (pencilDraw );
15+ Square square = new Square (brushDraw );
16+
17+ ellipse .drawShape ();
18+ square .drawShape ();
19+ }
20+ }
Original file line number Diff line number Diff line change 1+ package com .javabom .toby .chapter5 .term .브릿지_패턴 .draw ;
2+
3+ public class BrushDraw implements Draw {
4+ @ Override
5+ public void draw () {
6+ System .out .println ("draw by draw" );
7+ }
8+ }
Original file line number Diff line number Diff line change 1+ package com .javabom .toby .chapter5 .term .브릿지_패턴 .draw ;
2+
3+ public interface Draw {
4+ void draw ();
5+ }
Original file line number Diff line number Diff line change 1+ package com .javabom .toby .chapter5 .term .브릿지_패턴 .draw ;
2+
3+ public class PencilDraw implements Draw {
4+ @ Override
5+ public void draw () {
6+ System .out .println ("draw by pencil" );
7+ }
8+ }
You can’t perform that action at this time.
0 commit comments