지금까지 공부하면서 이해한 다형성에 대한 설명이다.
추가로 배우거나 다른 방식으로 이해를 하게될 수 있으므로 계속 수정할 예정이다.
객체 지향 5대 원칙 - 로버트 마틴
1. SRP(Single Responsibility Principle) 단일 책임의 원칙
하나의 클래스는 하나의 기능을 가져야 한다.
책임 범위를 잘 조절해서 설계해야하는데 쉽지 않다.
2. OCP(Open Close Principle) 개방폐쇄의 원칙
소프트웨어 구성 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
가장 중요한 원칙(객체지향의 장점)
다형성을 활용하자.
3. LSP(Liskov Substitution Principle) 리스코브 치환의 원칙
프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
자식 클래스는 부모 클래스를 대체 할 수 있어야 한다.
4. ISP(Interface Segregation Principle) 인터페이스 분리의 원칙
특정 클라이언트를 위한 인터페이스가 여러 개가 범용 인터페이스 하나보다 낫다.
인터페이스의 단일 책임을 강조.
5. DIP(Dependency Inversion Principle) 의존성역전의 원칙
프로그래머는 "추상화에 의존해야지, 구체화에 의존하면 안된다" 의존성 주입은 이 원칙을 따르는 방법 중 하나다.
인터페이스나 추상화에 의존해야한다