본문 바로가기
ComputerScience/SoftwareEngineering

[SoftwareEngineering] 1. 디자인 패턴 - 생성

by Develaniper 2021. 6. 5.

※ 디자인 패턴

  • 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 재 발생 했을 때 재사용 할 수 있는 해결책
  • "Don't reinvent the Wheel(바퀴를 다시 발명하지 마라) - 이미 만들어져 잘 되는 것을 처음부터 다시 만들 필요가 없다.

- GOF(Gang Of Four)의 디자인 패턴

GOF 디자인 패턴은 위와 같이 23개가 있다.  이 포스트에서는 자주 쓰이는 일부의 패턴들만을 살펴 보겠다.

 

1. 생성(Creational) 패턴

1)  싱글턴 패턴

어떤 클래스가 유일하게 1개만 존재해야할 때 사용한다. 스프링에서 Bean을 만들 때 기본설정이 싱글톤이다. @Scope를 사용하여 변경할 수 있다.

- 방법
class Singletone{
    static private Singletone singletone;
    private Singletone(){ } 
    // 기본 생성자를 막아 생성하지 못하도록 한다.
    
    public static Singletone getInstance(){
        if(singletone==null){
            return singletone = new Singletone();
        }
        return singletone;
    }
}
  1. 위와같이 Singletone이라는 클래스를 생성하는 것을 막는다(기본 생성자를 priate로 막아서).
  2. static 메서드인 getInstance() 메서드를 사용하여 인스턴스를 얻는다.
  3. 멤버인 singletone이 한번 생성된 경우에는 항상 이를 반환하여 재생성을 막는다.

2) 추상 팩토리 패턴

3) 빌더 패턴

4) 팩토리 메서드 패턴

- 계속...

 

출처

https://jusungpark.tistory.com/22
https://gmlwjd9405.github.io/2017/10/01/basic-concepts-of-development-designpattern.html
https://jdm.kr/blog/235
https://limkydev.tistory.com/79
https://ltk3934.tistory.com/74

댓글