싱글톤(Singleton)
싱글톤 : 클래스에서 하나의 인스턴스만 생성하도록 구현 하는 것
public class singleton {
private static singleton instance;
private singleton() {}
public static singleton getInstance()
{
if(instance==null)
{
instance=new singleton();
}
return instance;
}
}
- 기본생성자를 private으로 정의 -> 다른 class에서 생성을 못함. 내부에서만 가능
- 외부에서 생성자가 아니라 함수로 생성하게 함, instance없으면 만들어서 반환하고 이미 있으면 그대로 반환
- getInstance함수는 외부에서 인스턴스화 없이 바로 사용해야하니 당연히 publie static, 그리고 static함수 안에서 instance변수 사용해야하니 instace는 private static.
Factory Method 패턴
Factory Method : 인스턴스 생성을 만들어주는 클래스를 따로 두는 것.
ex - 인자,매개변수에 따라 다른 객체(제품)를 생성해 줌
- 인스턴스 생성에 대해 변경이 있더라도 factory내부에서만 변경하면 됨
- super class에 create()를 팩토리 패턴으로 만들고 상속받아서 각각의 create종류마다 구현을 함
- 템플릿 메소드 패턴 활용, 구조와 구현을 분리
Abstract Factory 패턴
Abstract Factory : 관련 있는 객체의 생성을 가상화 하는 패턴 (factory method에 추상화가 입혀짐)
- abstract class를 상속받아 여러 factory를 건설하는 것
-구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
(삼성전자기기라면 -> 삼성전자 모니터 삼성전자 마우스...)
- interface를 상속받아서 공장을 만듬(삼성공장, lg공장)
Prototype 패턴
Prototype Pattern : 생산 비용이 높은 인스턴스를 복사를 통해서 쉽게 생성 하는 패턴
-cloneable을 상속받으면 복사 가능 , 깊은(값) 복사>
Builder 패턴
Builder 패턴 : 복잡한 단계를 거쳐야 생성되는 객체의 구현을 서브 클래스에게 넘겨주는 패턴
(단계별로 구성하는 데 중점)
->업계에서 말하는 빌더 : 함수마다 자신을 다시 호출해서 단계별로 구성하는 방법 ,,가독성 좋음
(매개변수 쭉 쓰면 헷갈리지만 builder로 하면 실수할 확률 떨어짐)
(함수 호출하며 자신계속 반환하면 연쇄적으로 호출 가능)
'CS(Computer Science) > 디자인 패턴' 카테고리의 다른 글
행동 패턴(Behavioral patterns) (0) | 2020.10.22 |
---|---|
구조 패턴(Structual patterns) (0) | 2020.09.06 |