일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- Adapter Patten
- 브릿지 패턴
- java #디자인패턴 #Design Pattern #퍼사드 #Percade
- uuid
- Builder Pattern #빌더 패턴 #디자인패턴 # Design Pattern #생성 패턴
- tm4e
- timescale
- Flutter
- AdMob
- java #자바 #디자인패턴 #싱글톤 #Singleton
- java # 설계 #디자인패턴 # gof # 클래스 구조
- java #spring #dbcp #connection pool #자바 #스프링
- Bridge Patten
- java #Design Pattern #Prototype #디자인패턴 #프로토타입
- mybatis
- 플라이웨이 패턴
- 아답터 패턴
- java #spring # spring boot # 싱글톤 #prototype
- 데코레이터 패턴
- java #디자인패턴 #gof #추상 팩토리 패턴 #abstract
- Postgre
- 애드몹
- eclipse #pom.xml #
- 팩토리 메서트 # 패턴 #factory method # pattern
- Restful api #Spring boot #스프링부트
- Spring #Bean #객체생성시점
- 플러터
- 클래스 다이어그램 #UML
- flyweight pattern
- Default activity not found #build #에러
- Today
- Total
목록소프트웨어 아키텍처 (11)
개발자의 무지개

설명 ■ 정의 플라이웨이 패턴은 구조패턴으로 Factory클래스 내부에 Pool을 만들어 객체의 중복 생성 방지와 공유를 통한 메모리 사용량을 줄이는 클래스 구조이다. ■ ConcreteFlyweight 와 UnsharedConcreteFlyweight Flywieght클래스는 두가지 유형으로 나뉘는데 Facroty에서 관리되는 ConcreteFlyweight와 관리되지 않는 UnsharedConcreteFlyweight가 있다. ConcreteFlyweight 의 경우 Pool에 등록되어 중복생성 방지와 공유가 가능하나, UnsharedConcreteFlyweight 는 중복생성이 가능하고 공유되지 않는다. Client에서 사용될 때 ConcreteFlyweight 는 Factory를 통해 생성하고, ..

데코레이터 패턴은 구조패턴 중 하나로 서브클래스의 책임 추가 또는 확장시에도 수퍼클래스의 수정없이 기능을 사용할 수 있는 클래스 구조이다. 중요한 특징은 (데코레이션의) 서브클래스간 서로 주입할 수 있으며, 재귀적 호출을 통해 한번의 호출로 연관된 클래스 기능을 모두 사용할 수 있다는 것이다. 그리고 서브클래스간 서로 다른 동작을 하도록 작업을 위임할 수 있다. 서브클래스 확장이 용이하다는 장점이 있으나 치명적인 단점이 있는데, 다중상속을 허용하지 않는 구조에서는 추상클래스를 상속받음으로 다른 클래스를 상속받을 수 없다는 점이다. 클래스 다이어그램을 보면 Decorator가 Component 를 상속받고 있으며 동시에 Component와 연관관계에 있다. 다음 사례를 통해 이해해보자. 재고관리 프로그램을..

브릿지 패턴은 구조 패턴 중 하나로 연관된 클래스 집합간에 독립적으로 구성할 수 있도록 연관된 부모 클래스들을 추상화하여 참조하는 방식을 말한다. 아래 그림과 같이 한 그룹의 클래스가 다른 그룹의 클래스를 참조할 때 서브 클래스의 특징을 나타낼 수 있는 유동적인 구조라고 생각된다. 상황 RPG게임을 만드려고 한다. 직업은 전사와 마법사가 있고, 전사는 힘, 마법사는 마법력이 높다. 무기 종류는 검과 지팡이가 있고, 검은 물리수치가, 지팡이는 마법수치가 높다. 공격을 시도할 때 전사는 힘과 물리수치가, 마법사는 마법력과 마법수치가 적용된다. 패턴 적용 먼저 무기와 관련된 클래스를 만들어보자. public abstract class Weapon { protected int pyisycalPoint; prot..

아탑터 패턴은 구조 패턴 중 하나로 기존 인터페이스에 맞춰 다른 인터페이스의 기능을 사용해야 할 때 사용된다. 구현 방법은 Target을 Adapter클래스가 상속받아 인터페이스를 구현하고 Adaptee의 기능을 반환한다. 아답터 패턴으로 검색하면 대부분 인터페이스를 상속받는 방식으로 구현이 되어 있으나, 경험상 인터페이스를 사용할 수 없거나 인터페이스만으로는 부족한 경우가 많아 예제에선 클래스 상속(extends)으로 작성하였다. 그럼 다음 사례를 보자. 상황 사용자 이름을 관리하는 UserName 클래스 라이브러리를 제공받아 제품을 개발하였다. UserName클래스는 이름을 대문자와 소문자로 변환하는 기능을 제공한다. public class UserName { String name; public Us..