AOM (Adaptive Object Model)
- Active Object Model, Dynamic Object Model 이라고도 불림, 동적인 객체 모델
- 고객별로 다른 요구사항을 수용할 수 있는 설정 가능
- 유연성이 높고 실시간으로 적용이 가능한 애플리케이션을 개발할수 있는 아키텍처 스타일
기본 구조와 패턴
- AOM 아키텍처의 기본적으로 구조 (Class Diagram)
- 존재하지 않는 객체를 관리할때 EntityType에 새로운 객체가 등록이 되고, 해당 객체에 대한 속성도 새로운 타입으로 등록이 된다.
- 특별한 Rule이 필요한 경우에는 MetaLevel 안에서 Rule 클래스를 이용하여 필요한 행위를 하게 된다.
Type Object 패턴
- 인스턴스들를 해당 인스턴스들의 클래스로부터 분리시킴으로써 그 클래스들이 하나의 다른 클래스의 인스턴스들로 구현
- Object가 타입을 가지고 있다. 위의 그림에서 Entity <-> EntityType에 해당
example)
class Product {
ProductType productType = ProductType.EXTERNAL
}
enum ProductType {
INTERNAL,
EXTERNAL
EXTERNAL
}
Property 패턴
- 인스턴스 생성시 객체 안에 존재하는 서로 다른 타입의 속성을 대신 생성
- EntityType <-> AttributeType에 해당되는 패턴
- Type Object 패턴는 Object 자체에 Type이 주는 것에 초점에 되어있다면, Property 패턴을 Object 내부의 Property(Attribute), 속성들에 대한 타입 변경까지 그 영역을 넓혔다.
example)
class Product {
Map<PropertyType, String> propertiesMap;
public String getName() {
return propertiesMap.get(PropertyType.NAME);
}
}
enum PropertyType {
NAME,
PRICE
}
Type Squre
- Type Object + Property 패턴을 합쳐서 사용
참고 자료
'Programing' 카테고리의 다른 글
추상화 (Abstraction) (0) | 2020.09.22 |
---|---|
Deadlock (0) | 2018.12.21 |
Change Data Capture (0) | 2018.12.16 |
절자치향 프로그래밍과 객체지향 프로그래밍 (0) | 2018.12.13 |
Nexus Repository (0) | 2018.12.09 |