이론/디자인패턴4 디자인패턴 - SOLID(LSP, ISP, DIP) 3. LSP(리스코브 치환의 원칙 : The Liskov Substitution Principle) "Functions that use pointers or prferences to base classes must be able to use objects of derived classes without knowing it" * 정의 LSP 를 한 마디로 한다면 "서브 타입은 언제나 기반 타입으로 교체할 수 있어야 한다." 라고 할 수 있다. 즉, 서브 타입은 언제나 기반 타입과 호환될 수 있어야 한다. 달리 말하면 서브 타입은 기반 타입이 약속한 규약(public 인터페이스, 물론 메소드가 던지는 예외 까지 포함) 을 지켜야 한다. 상속은 구현상속(extends 관계) 이든 인터페이스 상속(impleme.. 2022. 1. 31. 디자인패턴 - SOLID (SRP, OCP) Design Smells design smell 이란 나쁜 디자인을 나타내는 증상 같은 것이다. 아래에 4가지 종류가 있다. 1. Rigidity(경직성) 시스템을 변경하기 어렵다. 하나의 변경을 위해서 다른 것들을 변경 해야 할 때 경직성이 높다고 한다. 경직성이 높다면 non-critical 한 문제가 발생했을 때, 관리자는 개발자에게 수정을 요구하기가 두려워진다. 2. Fragility(취약성) 취약성이 높다면 시스템은 어떤 부분을 수정하였는데, 관련이 없는 다른 부분에 영향을 주게 된다. 수정 사항이 관련되지 않은 부분에도 영향을 끼치기 때문에 관리하는 비용이 커지며, 시스템의 credibility 또한 잃는다. 3. Immobility(부동성) 부동성이 높다면 재사용하기 위해서 시스템을 분리해서.. 2022. 1. 30. 디자인 패턴 - 싱글톤 패턴(Singleton pattern) 애플리케이션이 시작될 때, 어떤 클래스가 최초 한 번만 메모리를 할당(static) 하고, 해당 메모리에 인스턴스를 만들어서 사용하는 패턴이다. 즉, 싱글톤 패턴은 '하나'의 인스턴스만 생성하여 사용하는 디자인 패턴을 말한다. - 인스턴스가 필요할 때, 똑같은 인스턴스를 만들지 않고 기존의 인스턴스를 활용하는 것 생성자가 여러번 호출되도 실제로 생성되는 객체는 하나이며, 최초로 생성된 이후에 호출된 생성자는 이미 생성한 객체를 반환시키도록 만드는 것이다. (java 에서는 생성자를 private 으로 선언해 다른 곳에서 생성하지 못하도록 만들고, getInstance() 메소드를 통해 받아서 사용하도록 구현한다.) 싱글톤 패턴은 왜 쓰는걸까? 먼저, 객체를 생성할 때마다 메모리 영역을 할당 받아야 한다... 2022. 1. 30. 디자인패턴 - 개요 디자인 패턴이란 일종의 설계 기법이며, 설계 방법이다. 디자인 패턴을 사용하는 목적 SW의 재사용성, 호환성, 유지 보수성을 보장할 수 있다. 디자인 패턴의 특징 - 디자인 패턴은 아이디어 이지, 특정한 구현이 아니다. - 프로젝트에 항상 적용해야 하는 것은 아니지만, 추후 재사용, 호환, 유지 보수 시 발생하는 문제 해결을 예방하기 위해 패턴을 만들어 둔 것이다. 원칙 - SOLID(객체지향 설계 원칙) 1. Single Responsibility Principle : 하나의 클래스는 하나의 역할만 해야 한다. 2. Open - Close Principle : 확장(상속) 에는 열려있고, 수정에는 닫혀 있어야 한다. 3. Liskov Substitution Principle : 자식이 부모의 자리에 항.. 2022. 1. 29. 이전 1 다음