Skip to content

Commit 112903b

Browse files
committed
adapter pattern
designed with computer driver application.
1 parent 624b910 commit 112903b

File tree

5 files changed

+86
-0
lines changed

5 files changed

+86
-0
lines changed

design-pattern/adapter/Driver.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package sdp.adapter;
2+
3+
/**
4+
*
5+
* @author rafiul islam
6+
*/
7+
public interface Driver {
8+
public void engine(String support);
9+
}

design-pattern/adapter/Main.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package sdp.adapter;
2+
3+
/**
4+
*
5+
* @author rafiul islam
6+
*/
7+
public class Main {
8+
public static void main(String[] args) {
9+
Windows pc = new Windows();
10+
pc.execute("exe");
11+
pc.execute("py");
12+
13+
Python python = new Python();
14+
pc.install("py", python);
15+
pc.execute("py");
16+
}
17+
}

design-pattern/adapter/OS.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package sdp.adapter;
2+
3+
/**
4+
*
5+
* @author rafiul islam
6+
*/
7+
public interface OS {
8+
public void install(String type, Driver driver);
9+
public void execute(String type);
10+
}

design-pattern/adapter/Python.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package sdp.adapter;
2+
3+
/**
4+
*
5+
* @author rafiul islam
6+
*/
7+
public class Python implements Driver{
8+
9+
@Override
10+
public void engine(String type){
11+
System.out.println("Python interpreter engine: "+type);
12+
}
13+
}

design-pattern/adapter/Windows.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package sdp.adapter;
2+
3+
import java.util.HashMap;
4+
5+
/**
6+
*
7+
* @author rafiul islam
8+
*/
9+
public class Windows implements OS{
10+
private HashMap installedDrivers;
11+
12+
public Windows(){
13+
installedDrivers = new HashMap();
14+
}
15+
16+
@Override
17+
public void install(String type, Driver driver){
18+
installedDrivers.put(type, driver);
19+
}
20+
21+
@Override
22+
public void execute(String type){
23+
type = type.toLowerCase();
24+
if(type == "exe" || type == "msi"){
25+
System.out.println("Windows default execution engine: "+type);
26+
}
27+
else{
28+
Driver driver = (Driver)installedDrivers.get(type);
29+
if(driver == null){
30+
System.out.println("No supported driver found");
31+
}
32+
else{
33+
driver.engine(type);
34+
}
35+
}
36+
}
37+
}

0 commit comments

Comments
 (0)