Programing

AOM (Adaptive Object Model)

BUST 2018. 12. 29. 14:55

AOM (Adaptive Object Model)

  • Active Object Model, Dynamic Object Model 이라고도 불림, 동적인 객체 모델
  • 고객별로 다른 요구사항을 수용할 수 있는 설정 가능
  • 유연성이 높고 실시간으로 적용이 가능한 애플리케이션을 개발할수 있는 아키텍처 스타일

기본 구조와 패턴

AOM의 기본구조
  • AOM 아키텍처의 기본적으로 구조 (Class Diagram)
  • 존재하지 않는 객체를 관리할때 EntityType에 새로운 객체가 등록이 되고, 해당 객체에 대한 속성도 새로운 타입으로 등록이 된다.
  • 특별한 Rule이 필요한 경우에는 MetaLevel 안에서 Rule 클래스를 이용하여 필요한 행위를 하게 된다.

Type Object 패턴

  • 인스턴스들를 해당 인스턴스들의 클래스로부터 분리시킴으로써 그 클래스들이 하나의 다른 클래스의 인스턴스들로 구현
  • Object가 타입을 가지고 있다. 위의 그림에서 Entity <-> EntityType에 해당

example)

class Product {
ProductType productType = ProductType.EXTERNAL
}

enum ProductType {
INTERNAL,
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