클래스가 Container
, Item
및 Property
인 컨테이너는 항목의 속성이 변경 될 때마다 통보됩니다.다른 클래스의 클래스 변경 알림
컨테이너는 아이템의 소유자이며 속성에 따라 컨테이너를 적절하게 관리하기위한 정보가 필요합니다.
나는 아직이 옵션을 생각했습니다
- 옵저버 패턴.
- 프록시 개체입니다.
내 의견으로는 관찰자 패턴이 너무 무거워 보입니다. 프록시 개체는 제대로 작동 할 수 있지만 프록시에서 실제 개체로 호출을 전달해야하므로 DRY 원칙을 위반합니다.
세부 정보가 사용자에게 표시되지 않아야합니다. update_item()
등의 기능 또는 이와 유사한 기능을 호출 할 필요가 없습니다. 즉, 컨테이너에 사용자에게 알리는 책임을 부여하여 사용상의 문제를 일으킬 수 있습니다.
이 접근법에서 볼 수있는 문제점은 "항목"이 "컨테이너"에 종속되고 "컨테이너"는 "항목"에 종속된다는 것입니다. 이것은 C++에서 문제가되지 않지만 imho는 설계 결함을 알립니다. 일반적으로 저는 물건을 고립 상태로 유지하는 경향이 있습니다. – stschindler
@Tank : 원하는 경우 'ContainerInterface' 및'ItemInterface' 또는 이와 유사한 것을 통해 통신 할 수 있습니다. Observer 패턴을위한 인터페이스를 만드는 것과 다르지 않습니다. 하지만 단순한 일을 복잡하게 만들지 마십시오.) – Andrew
_Clean Code_와 같은 책을 읽은 결과입니다. ;)''Item''이''Container'에 의존하게되면, 나는 단위 테스트에서 그것을 즉시 인식하고 거기서''Container''를 다뤄야한다는 것이 이상하다는 것을 알게 될 것입니다. 의존성을 없애기 때문에 인터페이스 아이디어는 나에게 좋게 들린다. – stschindler