싱글톤


스태틱 멤버 변수로 생성한 instance의 중복 초기화 방지를 위해 main 함수 위 클래스 외부에 초기화 해당 초기화는 static 멤버 특성상 한번만 호출됨 nullptr로 초기화를 한 이유는 프로그램 실행시 객체가 단 하나만 존재해야하기 때문에 getinstace 가 여러번 호출이되어도 nullptr 일 경우에만 새로 생성하게됨. 때문에 한번 이후 또 호출할경우 변수 이름이 다르더라도 동일한 객체를 가르키고 있다는 것을 알 수 있음.

pizza 인터페이스를 상속받는 basicPizza클래스와 추상클래스가 존재 해당 추상클래스에서 파생되어 BasicPizza 클래스에 지속적으로 기능을 추가하고싶을때 추상클래스를 기능의 중심으로 추상클래스가 인터페이스에 기능을 전달하는 구조 추상클래스를 상속받는 기능클래스들을 만들면 기능클래스에서 서로다른 기능을 추가할시 basicPizza 클래스에 적용되는 구조이다.
장점:
단점:

옵저버 패턴은 옵저버 인터페이스를 이용하여 상태변화를 전달받거나 전달하는 패턴이다.
관리를 할 어떤 문서가 있다고 생각해보자 해당 문서에는 값은같지만 형태가다른 기능이 담겨있다고 가정했을때 이를 옵저버 패턴을 이용하면 옵저버라는 인터페이스에 정보를 입력받고 전달하는 기능이 구현되어있다고 가정하자 문서에는 해당 정보들의 데이터들이 들어있다. 이때 인터페이스 옵저버는
정보 변화를 알려주는 장치가있고 이 옵저버를 상속받는 어떠한 기능이 구현된 클래스들이있다.
이때 해당 클래스들을 문서에 장착하여 문서에서 특정 값을입력할시 옵저버를 통해 모든 기능들이 작동하는 구조이다. ex) 엑셀차트에는 바를 출력해주는 바차트 선을출력해주는 라인차트 %를 달아주는 파이차트가 있다고 가정했을때 해당 기능을 가진 옵저버 인터페이스를 상속받는 클래스들을 각각 만들어 메인엑셀에 붙이고 메인엑셀에서 값을 출력시 옵저버를통해 모든 기능을 동일하게 작동시킬 수 있음