디자인패턴 [디자인패턴] 팩토리 메서드 패턴 (Factory Method Pattern) 🎲 작동방식 팩토리 메서드 패턴은 객체를 생성하는 Factory에서 어떤 객체가 생성될지 판단하지않고 Factory를 상속받은뒤 상속받은 Factory에서 어떤객체가 생성될지 정하는 방식입니다. 이러한 방식은 프로그램이 유지 보수되는 과정에서 Factory가 생성해야할 객체가 늘어났을 때 Factory Class를 수정하여주는 것이 아니라 Factory를 상속받는 클래스를 하나 더 만들어 줌으로써 OCP(Open Closed Principle)를 지켜주는 디자인패턴입니다. 🍳 장점 1. 새로운 객체를 추가로 생성해야할 때 기존의 코드를 수정할 필요없이 ObjectFactory를 상속받아 새로운 Factory를 만들어 생성할 수 있다. 🍳 단점 1. 기능에 비해서 코드가 보다 복잡해지고 코드의 길이가 길어.. [디자인패턴] 프로토타입 패턴 (Prototype Pattern) 구현방식프로토타입 패턴은 비슷한 객체를 여러개 복사 생성할 때 쓰이는 패턴입니다. 원본이 되는 객체를 clone등의 메서드를 이용해 복사해주는 방식입니다. 유니티 엔진에서 프리펩으로 원본 오브젝트를 복사하는것이 프로토타입 패턴에 해당됩니다. 장점1. 초기화 함수 없이도 객체를 간편하게 복사가 가능합니다.단점1. 복잡한 참조를 멤버로 가지고있는 객체의 경우 구현이 힘들 수 도 있습니다. [디자인패턴] 추상 팩토리 패턴 (Abstract Factory Pattern) 작동원리 비슷한 특징을 가진 여러개의 객체들을 체계적으로 생성하고 싶을 때 사용되는 패턴입니다. 비슷한 기능을 가진 객체들을 Interface로 묶고, 각각의 객체들을 생성하는 Factory를 Interface화 한 후에 상속받아 특성에 맞게 구현해줄 수 있습니다. 위의 예제에서는 OS에 따라 UI객체를 생성하는 Factory를 만들고, 각각의 Factory에서 특성에 맞는 객체들을 생성합니다. public interface IButton { } public class AndroidButton : IButton {} public class IOSButton : IButton {} public interface Scrollbar { } public class AndroidScrollbar : Scrollb.. [디자인패턴] 샌드박스 패턴(Sandbox Pattern) 작동원리 하위 클래스들의 기능들이 많이 겹칠 때, 상위 클래스에 여러 기능들을 전부 구현해두고, 하위 클래스에서는 필요에 따라 상속받아 사용하는 패턴입니다. 장점 1. 하위 클래스에서 같은 기능들을 중복으로 구현해줄 필요가 없어지기 때문에 코드의 재사용률이 올라갑니다. 2. 대부분의 기능이 상위클래스에서 정의 되기 때문에 하위 클래스들 사이의 커플링을 최소화할 수 있습니다. 단점 상위 클래스가 하위 클래스의 모든 기능을 담다 보면 메서드가 과도하게 많아질 수 있습니다. 이러한 문제점은 보조 클래스를 만들어 일부 기능을 보조 클래스로 옮기고, 해당 보조 클래스를 객체로 갖는 방식으로 해결이 가능합니다. [디자인패턴] 싱글턴(Singleton) 작동원리 싱글턴은 오직 하나의 인스턴스만 생성되는것을 보장해주는 디자인 패턴입니다. 객체의 생성자는 객체 내부에서만 호출 가능하도록 제한해줍니다. 객체에 접근할 때는 최초 1회만 객체가 생성되도록 해주고, 그 이후의 접근때는 해당 객체를 반환해 줍니다. public class Singleton { protected static Singleton instance = null; public static Singleton Instance { if (instance == null) instance = new Singleton(); return instance; } } 장점 객체의 갯수를 단 1개로 보장하여 주기 때문에 메모리를 아낄 수 있습니다. 또한, 전역변수 처럼 어디서든 데이터에 접근이 가능하기 때문에 데.. 이전 1 다음