Skip to content

Commit 03f451b

Browse files
committed
adapter added
1 parent 4d0213a commit 03f451b

13 files changed

+154
-0
lines changed

adapter/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Adapter
2+
3+
This is repository of http://androidcode.pl blog. It shows uses of Adapter in Android. It is a part of Design Patterns - Adapter post in the blog.

adapter/example/Analytics.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
public class Analytics {
2+
3+
public static void sendReport(String text) {
4+
//implementation
5+
}
6+
7+
//other methods
8+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
public class ExternalMessageProtocol {
2+
3+
public void sendString(String text) {
4+
//implementation
5+
}
6+
7+
public void sendBytes(byte[] bytes) {
8+
//implementation
9+
}
10+
11+
public byte[] getBytes(File file) {
12+
return Files.readAllBytes(file.toPath());
13+
}
14+
15+
//other methods
16+
}

adapter/example/IMessageProtocol.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
public interface IMessageProtocol {
2+
3+
void sendText(String text);
4+
void sendFile(File file);
5+
}

adapter/example/Main.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
public class Main {
2+
3+
public static void main() {
4+
Messenger newMessenger = new Messenger(new MessageProtocolAdapter());
5+
newMessenger.sendMessage("Message from external library"); //send optimized message and analytics
6+
7+
Messenger oldMessenger = new Messenger(new MessageProtocol());
8+
oldMessenger.sendMessage("Message from internal library"); //send only message
9+
}
10+
}

adapter/example/MessageProtocol.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
public class MessageProtocol implements IMessageProtocol {
2+
3+
@Override
4+
public void sendText(String text) {
5+
//converting and sending text
6+
}
7+
8+
@Override
9+
public void sendFile(File file) {
10+
//converting and sending file
11+
}
12+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
public class MessageProtocolAdapter implements IMessageProtocol {
2+
3+
private ExternalMessageProtocol protocol = new ExternalMessageProtocol();
4+
5+
public MessageProtocolAdapter() {
6+
this.protocol = new ExternalMessageProtocol();
7+
}
8+
9+
@Override
10+
public void sendText(String text) {
11+
Analytics.report("Message");
12+
protocol.sendString(text);
13+
}
14+
15+
@Override
16+
public void sendFile(File file) {
17+
Analytics.report("File");
18+
protocol.sendBytes(protocol.getBytes(file));
19+
}
20+
}

adapter/example/Messenger.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
public class Messenger {
2+
3+
private IMessageProtocol protocol;
4+
5+
public Messenger(IMessageProtocol protocol) {
6+
this.protocol = protocol;
7+
}
8+
9+
public void sendMessage(String text) {
10+
protocol.sendText(text);
11+
}
12+
13+
public void sendMessage(File file) {
14+
protocol.sendFile(file);
15+
}
16+
17+
public void changeStatus(String text) {
18+
//set and show status
19+
}
20+
}

adapter/pattern/Adaptee.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
public class Adaptee {
2+
3+
public void method1() {
4+
//some work
5+
}
6+
7+
public void method2() {
8+
//some work
9+
}
10+
11+
public void method3() {
12+
//some work
13+
}
14+
}

adapter/pattern/AdapterClass.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
public class AdapterClass extends Adaptee implements Client {
2+
3+
@Override
4+
public void operation1() {
5+
method1();
6+
}
7+
8+
@Override
9+
public void operation2() {
10+
method2();
11+
}
12+
}

adapter/pattern/AdapterObject.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
public class AdapterObject implements Client {
2+
3+
private Adaptee adaptee;
4+
5+
public Client() {
6+
this.adaptee = new Adaptee();
7+
//some parameters can be passed to initialize Adaptee
8+
}
9+
10+
@Override
11+
public void operation1() {
12+
adaptee.method1();
13+
}
14+
15+
@Override
16+
public void operation2() {
17+
adaptee.method2();
18+
}
19+
}

adapter/pattern/Client.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
public interface Client {
2+
3+
void operation1();
4+
void operation2();
5+
}

adapter/pattern/Main.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
public class Main {
2+
3+
public static void main() {
4+
Client clientClass = new AdapterClass();
5+
clientClass.operation1(); //runs method1() from Adaptee
6+
7+
Client clientObject = new AdapterObject();
8+
clientObject.operation2(); //runs method2() from Adaptee
9+
}
10+
}

0 commit comments

Comments
 (0)