gpt4 book ai didi

c++ - 为什么有些方法属于主题/观察者接口(interface),而另一些方法属于主题/观察者具体子类?

转载 作者:行者123 更新时间:2023-11-28 01:42:49 25 4
gpt4 key购买 nike

来自四人帮的设计模式 enter image description here

为什么字段observers,方法AttachDetachNotify 都在接口(interface) Subject,而方法 GetStateSetState 以及字段 SubjectState 在具体子类 ConcreteSubject 中?为什么成员按原样分布在主题接口(interface)和具体子类中?

为什么方法UpdateObserver接口(interface)中,而字段subjectobserverState在具体子类中具体观察者?为什么成员会原样分布在观察者接口(interface)和具体子类中?

主体和观察者之间似乎并不对称。例如,为什么字段observers属于接口(interface)Subject,而字段subject属于ConcreteObserver

谢谢。

最佳答案

Subject 接口(interface)中的 GetState 和 SetState 方法将使 Subject 接口(interface)依赖于依赖对象的更新方式。这违反了依赖倒置原则。

Subject 接口(interface)所做的只是附加一个具体的主题并通知观察者。具体对象的状态如何变化与此无关。这就是为什么 getState 和 setState 不是主题接口(interface)的一部分的原因。

observeState 不是 Observer 接口(interface)的一部分的类似原因。

关于c++ - 为什么有些方法属于主题/观察者接口(interface),而另一些方法属于主题/观察者具体子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46498688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com