일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Singleton
- Kotlin
- 추상 팩토리
- Design Pattern
- PrototypePattern
- 코틀린
- 추상팩토리패턴
- 프로토타입 패턴
- 옵저버 패턴
- r
- 팩토리 메소드
- a
- Abstract Factory
- 디자인패턴 #
- 디자인패턴
- 함수형프로그래밍
- factory method
- F
- Observer Pattern
- 싱글톤
- builderPattern
- 빌터패턴
- designPattern
- El
- Functional Programming
- ㅋㅁ
- ㅓ
- Today
- Total
목록디자인패턴 (18)
오늘도 더 나은 코드를 작성하였습니까?
정의소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다. 어플리케이션 전반에 걸쳐 어디에서든 접근 가능하며, 유일한 객체를 필요로 할때 사용한다.1번 생성할때, 많은 비용이 소모되며, 앱의 여러군데에서 동일한 데이터에 접근을 할 필요성이 있다면, 싱글턴 패턴을 사용하면된다. 대표적으로 DataBase를 추상화하여 접근하는 객체를 싱글턴 패턴으로 만들..
디자인 패턴이란 무엇인가??객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴.여러 사람이 협업해서 개발할 때 다른 사람이 작성한 코드, 기존에 존재하는 코드를 이해하는 것은 어렵다. 이런 코드를 수정하거나 새로운 기능을 추가해야 하는데 의도치 않은 결과나 버그를 발생시키기 쉽고 성능을 최적화시키기도 어렵다. 이로 인해 시간과 예산이 소모된다.디자인 패턴은 의사소통 수단의 일종으로서 이런 문제를 해결해준다. 예를 들어 문제 해결의 제안에 있어서도 “기능마다 별도의 클래스를 만들고, 그 기능들로 해야할 일을 한번에 처리해주는 클래스를 만들자.”라고 제안하는 것보다 "Facade 패턴을 써보자."라고 제안하는 쪽이 이해하기 쉽다. 일반 프로그래머가 만나는 문제가 지구상에서 ..
정의 요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화할 수 있습니다. 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능을 사용할 수 있습니다. 커맨드 객체는 일련의 행동을 특정 리시버(실제 행위를 처리 하는 객체)와 연결하고 요청을 캡슐화한 것이다. 행동과 리시버를 한 객체에 넣고 execute() 메소드 하나만 외부에 공개하는 방법을 사용한다. *Invoker - command가 들어있으며, 특정 작업에 대한 수행을 요청한다. Comand 인터페이스 interface Command { fun execute() fun undo() } Receiver 인터페이스 및 객체 interface TV{ fun on() fun off() fun setVolume() fun set..
추상 팩토리 패턴 특정한 제품군을 생성할때 사용한다. 구상 클래스에 의존하지 않고도 서로 연관되거나 의존적인 객체로 이루어진 제품군을 생산하는 인터페이스를 제공합니다. 추상 팩토리 인터페스 및 구상 클래스. interface PizzaIngredientFactory { fun createDough(): Dough fun createSauce(): Sauce fun createCheese(): Cheese fun createPepperoni(): Pepperoni } class NYPizzaIngredientFactory : PizzaIngredientFactory { override fun createDough(): Dough = ThinCrustDough() override fun createSauce..