Skip to content

Commit 295d805

Browse files
committed
dependency injection added
1 parent dbe4f93 commit 295d805

21 files changed

+243
-0
lines changed

dependency-injection/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# dependency-injection
2+
This is repository of http://androidcode.pl blog. It shows uses of Dependency Injection in Android. It is a part of Design Patterns - Dependency Injection post in the blog.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
public class ComponentWithLogs {
2+
3+
private Logger logger;
4+
5+
public ComponentWithLogs(Logger logger) {
6+
this.logger = logger;
7+
}
8+
9+
public void operation1() {
10+
logger.logClickEvent(getClickEvent());
11+
try {
12+
//do stuff
13+
logger.logState(getState());
14+
}
15+
catch (Exception exception) {
16+
logger.logError(getError(exception));
17+
}
18+
}
19+
20+
//other methods
21+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
public class Main {
2+
3+
private boolean isInternetConnection;
4+
//set value
5+
6+
public static void main() {
7+
ComponentWithLogs component;
8+
if(isInternetConnection)
9+
component = new ComponentWithLogs(new NetworkLogger());
10+
else
11+
component = new ComponentWithLogs(new FileLogger());
12+
13+
//test class
14+
ComponentWithLogs componentTest = new ComponentWithLogs(new MockLogger());
15+
}
16+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
public class FileLogger implements Logger {
2+
3+
@Override
4+
public void logState(AppState appState) {
5+
FileManager.write(appState);
6+
}
7+
8+
@Override
9+
public void logClickEvent(ClickEvent clickEvent) {
10+
FileManager.write(clickEvent);
11+
}
12+
13+
@Override
14+
public void logError(Error error) {
15+
FileManager.write(error);
16+
}
17+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
public interface Logger {
2+
3+
void logState(AppState appState);
4+
void logClickEvent(ClickEvent clickEvent);
5+
void logError(Error error);
6+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
public class MockLogger implements Logger {
2+
3+
@Override
4+
public void logState(AppState appState) {
5+
Console.log(appState.toString());
6+
}
7+
8+
@Override
9+
public void logClickEvent(ClickEvent clickEvent) {
10+
Console.log(clickEvent.toString());
11+
}
12+
13+
@Override
14+
public void logError(Error error) {
15+
Console.log(error.toString());
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
public class NetworkLogger implements Logger {
2+
3+
@Override
4+
public void logState(AppState appState) {
5+
NetworkManager.send(appState);
6+
}
7+
8+
@Override
9+
public void logClickEvent(ClickEvent clickEvent) {
10+
NetworkManager.send(clickEvent);
11+
}
12+
13+
@Override
14+
public void logError(Error error) {
15+
NetworkManager.send(error);
16+
}
17+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
public class AppState {
2+
3+
//body
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
public class ClickEvent {
2+
3+
//body
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
public class Error {
2+
3+
//body
4+
}

0 commit comments

Comments
 (0)