디자인 패턴 4

[디자인패턴] 싱글톤(Singleton) 패턴

싱글톤 (Singleton) 패턴 싱글톤 패턴 인스턴스를 오직 하나만을 생성하여 글로벌하게 환경설정이나 시스템 런타임등에 사용한다. 간단한 싱글톤 코드 생성자를 private로 설정을 해주면 사용할때 new로 만들기가 불가능하다. static 으로 getInstance를 만든 이유는 글로벌하게 접근을 하기 위해서 사용을 한다. public class Settings { private static Settings instance; private Settings() { } public static Settings getInstance() { if (instance == null) { instance = new Settings(); } return instance; } } 위에 코드는 멀티 쓰레드 환경에서는 ..

디자인 패턴 2022.04.10

[디자인패턴] 팩토리(Factory)패턴

팩토리 메서드란 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡길수 있다. 자주 변화가 있는 부분을 밖으로 빼낸다. 팩토리메서드의 장점 기존의 인스턴스를 만든는 코드를 변경하지 않고 같은 류의 새로운 인스턴스를 생성 또는 확장이 가능하다.(OOP의 5대원칙중 하나인 개방 폐쇄 원칙 (Open-Closed Principle, OCP)를 만족하게 한다.) 느슨한 결합을 만들수 있다. 팩토리 메서드의 단점 역할분담을 위해서 클래스가 많아진다. 기존의 코드 기존의 팩토리 코드 public class ShipFactory { //새로운 기능을 넣을려면 코드가 고쳐져야한다. 변경에 닫혀져있는 객체지향의 원치 위반 만들어지는 과정이 이리저리 산만해서 코드 가독성이 떨어진다. publi..

디자인 패턴 2022.04.08

[디자인패턴] 빌더(Builder)패턴

빌더패턴이란 첫번째 점층적 생성자 패턴 public class User { private int userIdx; // 선택 private String name; // 필수 private String part; // 필수 private int age; // 선택 private String email; // 선택 } 여러개의 생성자를 따로 만들어야 한다. 지저분해지고 복잡해지는 단점이 있다. public class User { private int userIdx; private String name; private String part; private int age; private String email; //만약 필드값이 더 많아지면 경우의 수는 더욱더 많아 질것이다. public User(String n..

디자인 패턴 2022.04.08