Definition
โข
ํด๋ผ์ด์ธํธ ์ฝ๋๊ฐ ์์ ์ด ์ฌ์ฉํ์ง ์๋ method์ ์์กดํ๋๋ก ๊ฐ์ ๋์ด์๋ ์๋๋จ
โข
์ ์ฌํญ์ ์ํด ๋ค์์ interface๋ก ๋ถ๋ฆฌ ๋ฐ ํด๋น interface์ ํด๋ผ์ด์ธํธ ์ฝ๋๊ฐ ์์กดํ๋๋ก ํจ. ์ด๋ก์ ์๋ก ๋ค๋ฅธ ํด๋ผ์ด์ธํธ ์ฝ๋๊ฐ ์๋ก์ ๋ํด ๋
๋ฆฝ์ ์ด ๋๋๋ก ํจ.
ISP violated sample
public interface Modem
{
// connection responsibility
public void Dial(string pno); public void Hangup();
// data channel responsibility
public void Send(char c); public char Recv(); }
C#
๋ณต์ฌ
ํน์ง
โข
Connection๊ณผ data channel์ด๋ ๋ ๊ฐ์ ์ฑ
์์ด ๋จ์ผ entity๋ก ๋ฌถ์
๋ฌธ์ ์
โข
Connection ๋ถ๋ถ code ๋ณ๊ฒฝ์ด data channel ๋ด๋น client code์ ์ฌ์ปดํ์ผ, ์ฌ๋ฐฐํฌ๋ฅผ ์๊ตฌํจ
ISP complied sample
โข
์ฑ
์ ๋ณ interface ๋ถ๋ฆฌ๋ฅผ ํตํด ํน์ client code ์์ action ๋ณ๊ฒฝ์ด ํ client code์ ์ํฅ์ ๋ฏธ์น์ง ์์
Conclusion
โข
SRP๋ class ์์ค์์์ ๋์ ์์ง๋๋ฅผ ๊ฐ์กฐํ๋ ๋ฐ๋ฉด ISP๋ interface ์์ค์ ์์ง๋๋ฅผ ๊ฐ์กฐ.
โข
์ด๋ค class์ ์ฑ
์์ ๋ถ๋ฆฌํ ์ ์์ ๊ฒฝ์ฐ(SRP ์๋ฐ), ์ต์ํ interface๋ง์ด๋ผ๋ ๋ถ๋ฆฌํ ๊ฒ.
References
โข
OOPrimer - (Object Oriented Principles Explained), Arnon Rotem-Gal-Oz



