Solid 3

SOLID원칙 - ISP(Interface Segregation Principle)

ISP(Interface Segregation Principle)이란? 특정 클라이언트가 자신이 이용하지 않는 메서드 등의 멤버에 의존하면 안된다. ISP(Interface Segregation Principle)은 직역하면 인터페이스 분리 원칙이다. 다시 말하자면 특정 객체가 특정 인터페이스를 상속받아 구현할 때 불필요한 메서드나 멤버가 있으면 안된다는 원칙이다. 스마트폰에 빗대서 설명해보자. 아래에 SmartPhone의 기능을 정의한 인터페이스가 있다. 스마트폰처럼 음악을 재생시킬 수 있고 메세지, 전화 기능도 구현되어 있으며 검색 기능까지 구현되어 있다. public interface ISmartPhone { void PlayMusic(); void SendMessage(); void Call();..

SOLID원칙 - LSP (Liskov Substitution Principle)

LSP(Liskov Substitution Principle)이란? 상위 타입의 객체를 하위 타입의 객체로 치환하여 사용하여도 프로그램은 정상적으로 동작해야 한다. LSP(Liskov Substitution Principle)은 상속이 이루어진 클래스간에 상위 타입에 하위 타입의 객체를 치환하여 사용할 때에도 프로그램의 안정성이 보장되어야 한다는 것을 뜻한다. 객체지향 프로그래밍을 해왔던 개발자에겐 너무도 당연하게 스며들어 있는 개념이다 예시 클래스 상속 구조 아래와 같이 Person, ChildA, ChildB를 정의한다. ChildA와 ChildB는 Person을 상속받고 Person의 GetName 함수를 Override하고 있다. public class Parent { public virtual ..

SOLID원칙 - SRP (Single Responsibility Principle)

SRP(Single Responsibility Principle)이란? 클래스는 하나의 책임만 가져야 한다. SRP(Single Responsibility Principle)은 하나의 객체가 하나의 책임만을 가져야한다는 원칙이다. 아주 간단하고 명료한 명제이지만 소프트웨어 개발에 있어서 "책임"이라는 단어의 범주는 한 마디로 표현하기가 어렵다. 그래도 굳이 한 마디로 표현하자면 논리적으로 설계된 하나의 기능이라고 볼 수 있다. 다만 여기서 말하는 기능의 기준은 클래스가 정의한 메서드나 상속 구조, 사용자의 수를 말하는 것은 아니다. 예를 들어보자. 누군가 당신에게 뉴스 웹 페이지에서 기사 내용을 가져와 프로그램에 나타내는 소프트웨어 개발을 요청했다고 하자. 당신은 웹페이지 주소에서 뉴스 내용을 가져오는 ..