Skip to content

Commit b8365e9

Browse files
committed
Improved the adapter pattern example. Updated the class diagram.
1 parent d4ee7a7 commit b8365e9

File tree

6 files changed

+33
-13
lines changed

6 files changed

+33
-13
lines changed

adapter/etc/adapter.jpg

5.48 KB
Loading

adapter/src/main/java/com/iluwatar/App.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
/**
44
*
55
* Adapter (GnomeEngineer) converts the interface of the
6-
* target class (GoblinGlider) into suitable one.
6+
* target class (GoblinGlider) into suitable one expected
7+
* by the client (GnomeEngineeringManager).
78
*
89
*/
910
public class App
1011
{
1112
public static void main( String[] args )
1213
{
13-
GnomeEngineer engineer = new GnomeEngineer();
14-
engineer.operateDevice();
14+
GnomeEngineeringManager manager = new GnomeEngineeringManager();
15+
manager.operateDevice();
1516
}
1617
}

adapter/src/main/java/com/iluwatar/Engineer.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
/**
44
*
5-
* The interface the client knows how
6-
* to use.
5+
* Engineers can operate devices.
76
*
87
*/
98
public interface Engineer {

adapter/src/main/java/com/iluwatar/GnomeEngineer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
/**
44
*
5-
* Adapter class. Adapts the interface of the
6-
* GoblinGlider into Engineer expected by the
7-
* client.
5+
* Adapter class. Adapts the interface of the device
6+
* (GoblinGlider) into Engineer interface expected
7+
* by the client (GnomeEngineeringManager).
88
*
99
*/
1010
public class GnomeEngineer implements Engineer {
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.iluwatar;
2+
3+
/**
4+
*
5+
* GnomeEngineering manager uses Engineer to
6+
* operate devices.
7+
*
8+
*/
9+
public class GnomeEngineeringManager implements Engineer {
10+
11+
private Engineer engineer;
12+
13+
public GnomeEngineeringManager() {
14+
engineer = new GnomeEngineer();
15+
}
16+
17+
@Override
18+
public void operateDevice() {
19+
engineer.operateDevice();
20+
}
21+
}

adapter/src/main/java/com/iluwatar/GoblinGlider.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,20 @@
22

33
/**
44
*
5-
* Adaptee class.
5+
* Device class (adaptee in the pattern).
66
*
77
*/
88
public class GoblinGlider {
99

1010
public void attachGlider() {
11-
System.out.println("glider attached");
11+
System.out.println("Glider attached.");
1212
}
1313

1414
public void gainSpeed() {
15-
System.out.println("gaining speed");
15+
System.out.println("Gaining speed.");
1616
}
1717

1818
public void takeOff() {
19-
System.out.println("lift-off!");
19+
System.out.println("Lift-off!");
2020
}
21-
2221
}

0 commit comments

Comments
 (0)