当当d level
获赞
1
粉丝
0
关注
0
看过 TA
0
University of Edinburgh
2025
游戏后端
IP属地:英国
暂未填写个人简介
私信
关注
问题的定义和发现过程:今天在做毕业设计的项目,发现两个系统之间可能存在耦合。一开始的想法是使用事件的方式来解耦。后来发现不仅这两个系统之间存在耦合,也普遍存在于其他系统间。解决方法的联想和具体方案:正好最近在看面经,发现大家大部分情况都被问到了设计模式,所以就想着看看啥设计模式可以解决这个问题。最后选择了观察者模式。于是就去google了一下什么观察者模式,就我浅显的一个小时了解之后,用我个人的话来理解就是:观察者模式可以理解为有一些类(类1),他们的行为在设计上会影响别的类(类2、3、4)。但是我们需要在开发过程正避免类2、3、4直接调用类1的某些字段来更新状态,导致耦合。所以我们可以实现一个发布者接口,让类1实现这个接口,同时实现一个订阅者接口,让类2、3、4实现这个接口。另外需要类1维护一个动态的订阅者列表,在类1的某些状态改变的时候,通过事件发布给所有依赖于这个状态的订阅者。这样订阅者就可以避免通过直接访问发布者某些字段的行为来改变自己的特定状态,达到解耦的目的。(我对接口和事件的知识还比较浅,而且是刚刚了解了观察者模式,如果有理解错误欢迎指出,写这个贴子目的在于记录自己的每日学习,并且锻炼结构化思考问题的能力。)资料参考:https://refactoringguru.cn/design-patternshttps://www.runoob.com/design-pattern/observer-pattern.html
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务