Last active
August 29, 2015 14:21
-
-
Save therne/384e9ca750482b389c83 to your computer and use it in GitHub Desktop.
SOLID : Interface Segregation Principle Example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* ClientDataReceiver | |
* 클라이언트로부터 데이터가 수신될 때 호출되는 리시버이다. | |
*/ | |
interface ClientDataReceiver { | |
public void onLoginDataReceive(User user); | |
public void onGamePlayDataReceive(PlayData data); | |
} | |
/** | |
* LoginServer | |
* 로그인에 관한 내용을 처리하는 서버 클래스 | |
*/ | |
class LoginServer implements ClientDataReceiver { | |
@Override | |
public void onLoginDataReceive(User user) { | |
doSomethingNice(); | |
doSomethingProcess(); | |
doSomethingProcess(); | |
doSomethingProcess(); | |
doSomethingProcess(); | |
// do something nice... | |
} | |
@Override | |
public void onGamePlayDataReceive(PlayData data) { | |
// unused! | |
} | |
} | |
/** | |
* GamePlayServer | |
* 게임 플레이에 관한 내용을 처리하는 서버 | |
*/ | |
class GamePlayServer implements ClientDataReceiver { | |
@Override | |
public void onLoginDataReceive(User user) { | |
// unused! | |
} | |
@Override | |
public void onGamePlayDataReceive(PlayData data) { | |
// bla bla.. do some logic | |
this.move(data); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
interface LoginDataReceiver { | |
public void onLoginDataReceive(User user); | |
} | |
interface GameDataReceiver { | |
public void onGamePlayDataReceive(PlayData data); | |
} | |
/** | |
* LoginServer | |
* 로그인에 관한 내용을 처리하는 서버 클래스 | |
*/ | |
class LoginServer implements LoginDataReceiver { | |
@Override | |
public void onLoginDataReceive(User user) { | |
doSomethingNice(); | |
doSomethingProcess(); | |
doSomethingProcess(); | |
doSomethingProcess(); | |
doSomethingProcess(); | |
// do something nice... | |
} | |
} | |
/** | |
* GamePlayServer | |
* 게임 플레이에 관한 내용을 처리하는 서버 | |
*/ | |
class GamePlayServer implements GameDataReceiver { | |
@Override | |
public void onGamePlayDataReceive(PlayData data) { | |
// bla bla.. do some logic | |
this.move(data); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment