首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

在策略模式中, 为什么使用“聚合”而不是 “关联”关系?

发布网友

我来回答

5个回答

热心网友

四楼南哥 v5 啊

@二玉威武
关联强调的是Stragety接口和单个具体实现(ConcreteStrategy)的关系,即强调的是两两之间的关系,也就是说Strategy和ConcreteStrategy1、ConcreteStrategy2都是关联关系。但是对某个具体实现,要么只关注Strategy和ConcreteStrategy1,要么只关注Strategy和ConcreteStrategy2。Strategy接口在某次具体实现中也只关注ConcreteStrategy1或ConcreteStrategy2.

对聚合而言,则当Strategy和ConcreteStrategy1、ConcreteStrategy2都有聚合关系时,则在某次具体实现中,Strategy既得关注ConcreteStrategy1的实现,又得关注ConcreteStrategy2的实现。即具体的实现是将ConcreteStrategy1和ConcreteStrategy2拼组而成的。

个人见解~

热心网友

哈哈,我认真听了二玉的课,哥来告诉你,用聚合关系,就可以综合使用多个策略,而用关联关系,你每次就只能使用一个策略了。

一次使用多个策略的情况虽然不常见,还是有的~

热心网友

明天就考试了好怕怕
我也不太懂,关联和聚合在代码层次没啥区别啊,只是语义不同吧
关联的话,两者是一个档次的
聚合的话是owns-a整体和部分间的关系

关联也可以一对多啊== 为啥每次只能用一个策略呢
不太懂啊不太懂
==========================
有点懂了,聚合就是强调strategy本身可以由多个ConcreteStrategy聚合使用?追问这个丁老师说不考的

热心网友

聚合关系更密切追问能具体一点吗

热心网友

额。。楼上1点多回复的额。。。好认真啊,压力好大

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com