본문 바로가기

CS knowledge/Design Pattern

(3)
전략 패턴 1. 전략 패턴이란?객체의 행위를 바꾸고 싶은 경우, 파라미터에 행위의 방법 객체를 넣어서 해당 방법 객체의 클래스에서 구현된 행위를 사용하는 방법, 해당 행위 구현부의 파라미터를 인터페이스 설정하여 인터페이스를 기반으로 구현된 여러 클래스의 유연한 사용을 가능하게 한다.class 행위1 implements 행위_인터페이스{ ...}class 행위2 implements 행위_인터페이스{ ...}class System{ void pay(행위_인터페이스 행위_){ 행위_pay(); }}void main(){ System system = new System(); system.pay(new 행위1()); system.pay(new 행위2());} 위의 수도 코드에서 하..
SingleTon And Factory Pattern 1. 싱글톤 패턴 (Singleton Pattern)✅ 정의하나의 객체를 공유해서 사용하는 패턴클래스 내부에 단 한 번만 객체를 생성하고, 계속 그 객체만 반환✅ 핵심 개념하나의 클래스 변수에 단 한 번 객체가 할당되고, 이후에는 바뀌지 않음모든 코드에서 동일한 인스턴스를 공유함🤝 의존성 주입(DI)과 결합도 완화의존성 주입: 클래스의 멤버변수를 생성자를 통해 외부에서 주입하는 방식🔹 장점다양한 구현체(MemberRepo, SalesRepo 등)를 유연하게 주입 가능테스트 코드에서 MockRepo 등으로 교체 쉬움🔹 단점 (DI를 사용하지 않을 때)클래스 내부에서 new로 직접 생성하면,특정 구현체로 고정됨테스트 및 확장이 어려움결합도 상승❗ 오해 주의싱글톤은 하나의 테스트에서 한 객체를 공유하는 ..
Dependency Injection Principle 1. 의존성 주입이란 Dependency Injectiondependency injection : 의존성 주입1. 의존성 주입이란의존하고 있는 클래스의 객체를 멤버변수로 사용하는 것이다. 2. 의존이란특정 클래스에 의지를 하고 있는 상태이다. 예를들면 "나"라는 클래스halo-server.tistory.com 2. 의존성 주입 원칙 3가지가. 의존성은 외부에서 주입받자 나. 의존성 역전 원칙 (DIP)유연한 클래스 생성자 파라미터 사용을 목적으로 의존성 주입 코드 작성 시, 생성자 파라미터는 인터페이스 객체로 설정한다. 이것을 DIP, Dependency Inversion Pricipal 을 따른다고 한다.D : 의존성Inversion : 역전, 옛날에는 상위 모듈이 하위 모듈(의존하던 모듈)에 의..