본문 바로가기

728x90

아키텍처

[디자인 패턴] 프로토타입 패턴 /* 프로토타입 패턴 (Prototype Pattern) */ 객체가 있고 그 객체의 정확한 복사본이 필요한다면 우리는 새 객체를 생성하고 기존 객체의 모든 필드 값을 새 객체에 넣을 것이다. 이러면 문제가 없지만 기존 객체의 필드를 외부에서 볼 수 없는 경우가 발생한다. 또한, 객체의 복제본을 생성하려면 객체의 클래스를 알아야 하므로, 해당 클래스에 의존하게 된다. 이러한 문제점들을 막기 위해 프로토타입 패턴을 이용한다. 프로토타입 패턴은 clone 메서드를 사용한다. /* 프로토타입 객체 생성 */ 방법은 여러가지가 될 수 있다. 나는 프로토타입 인터페이스 정의를 통해 구현을 하겠다 // 프로토타입 인터페이스 interface Prototype { Prototype clone(); } // 구체적 프.. 더보기
[디자인 패턴] 싱글톤 패턴 (Singleton Pattern) /* 싱글톤 패턴 */ 싱글톤 패턴이랑 단 클래스의 객체를 하나만 만들기 위한 코드 패턴이다 코드를 하다보면 우리는 하나의 객체만 사용할 때가 있다. (DB에 연결하기 위한 Connection 클래스 - 여러 클래스에서 Connection 클래스를 이용할때마다 객체를 여러번 만들면 메모리 낭비가 심하다) /* 이해를 위한 예시 */ public class Main{ public static void main(String[] args){ Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); System.out.println(s1 == s2); //true } } getInstance() 메서드를 이용해 객체를 불러온다.. 더보기
[아키텍처] SOLID 원칙 /* SOLID 원칙 */ 아키텍처를 구성하거나 코드를 짤때 생각해야 하는 5대 원칙이다. 이 5대 원칙은 사용자 관점에서의 설계를 지향한다. SRP 단일책임원칙 OCP 개방-폐쇄 원칙 LSP 리스코프 치환 원칙 ISP 인터페이스 분리 원칙 DIP 의존 역전 원칙 /* 단일 책임 원칙 (SRP) */ 클래스는 단 한개의 책임을 가져야 한다. (하나의 컴포넌트는 하나의 책임을 담당해야 한다. 컴포넌트를 변경하는 이유는 하나여야 한다.) ex) 두개의 객체가 하나의 메소드를 공유해서 쓴다고 가정해보자. 수정 사유가 있어 하나의 객체에 있는 메소드를 변경해야 할때, 자연스럽게 다른 하나의 객체가 영향을 받는다. /* 개방 폐쇄 원칙 (OCP) */ 확장에는 열려있어야 하고, 변경에는 닫혀있어야 한다. ex) .. 더보기

728x90