본문 바로가기

디자인패턴

(3)
[디자인패턴] Chapter 07. 어댑터 패턴과 퍼사드 패턴 어댑터 패턴 (Adapter Pattern) 특정 클래스 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환한다. 인터페이스가 호환되지 않아 같이 쓸 수 없었던 클래스를 사용할 수 있게 도와준다. 객체지향 어댑터 - 예) 어떤 소프트웨어 시스템에 새로운 업체에서 제공한 클래스 라이브러리를 사용해야 하는데, 그 업체에서 사용하는 인터페이스가 기존에 사용하던 인터페이스와 다른 경우 사용 가능한 인터페이스로 한번 감싸서 사용한다. 오리 어댑터 1. 어댑터 적용 전 IDuck 인터페이스를 구현하는 MallardDuck ITurkey 인터페이스를 구현하는 WildTurkey // 오리 인터페이스 internal interface IDuck { public void Quack(); public void Fl..
[디자인패턴] Chapter 05. 싱글톤 패턴 싱글톤 패턴 (Singleton Pattern) 생성자를 여러차례 호출하여도 무조건 하나의 객체만 생성하도록 하고, 그 객체로의 전역 접근을 제공 public sealed class Singleton { private static Singleton? uniqueInsance = null; /// /// private 생성자 => Singleton 클래스 내에서만 객체 생성 가능 /// private Singleton() { } public static Singleton GetInstance() { // null인 경우에만 객체를 새로 생성 if (uniqueInsance is null) uniqueInsance = new Singleton(); // null이 아니면 기존 객체 리턴 return uniq..
[디자인패턴] Chapter 03. 데코레이터 패턴 데코레이터 패턴 (Decorator Pattern) 기존 클래스 코드를 바꾸지 않고도 객체에 추가 요소를 동적으로 더할 수 있다. 기능의 유연한 확장을 위해 상속대신 객체를 장식(decorator)한다. 디자인 원칙 OCP (Open-Closed Principle) : 클래스는 확장에는 열려 있어야 하지만 변경에는 닫혀 있어야 한다. => 기존 코드는 건드리지 않고(Closed), 새로운 기능을 추가(Open)할 수 있어야 한다. ※ 무조건 OCP를 적용한다면 시간을 낭비할 수 있으며, 추상화를 하다 보면 필요 이상으로 복잡하고 이해하기 힘든 코드를 만들게 될 수 있다. 가장 바뀔 가능성이 높은 부분을 중점적으로 살펴보고 OCP를 적용하는 것이 좋다. 초대형 커피 전문점, 스타버즈 - 다양한 음료를 모두..