资讯专栏INFORMATION COLUMN

关于对聚合和组合的理解

lakeside / 1242人阅读

摘要:今天看了看深入面向对象模式与实践第三版其中看到聚合跟组合的概念,对此理解也比较模糊文中是这样说的理解上面文本中的话,我个人理解是成这样首先是聚合下午下午下午下午类内聚了两个类分别是分别都实现了而且在实力的时候构造时实例化和。

今天看了看

  

深入PHP++面向对象、模式与实践_第三版

其中看到“聚合”跟“组合”的概念,对此理解也比较模糊
文中是这样说的:


理解上面文本中的话,我个人理解是成这样:

首先是聚合

    aggregation, new AggregationB());
        array_push($this->aggregation, new AggregationC());
    }

    public function addAggregation(AggregationInterface $aggregation)
    {
        array_push($this->aggregation, $aggregation);

        return $this;
    }

    public function getAggregationList()
    {
        return $this->aggregation;
    }
} 
    

    

    

类内聚了两个类:分别是agregationB, agregationC 分别都实现了AgregationInterface, 而且在实力AgregationA的时候构造时实例化B和C。

再次是组合:

A类

    compositionB = $compositionB;

        return $this;
    }

    public function getCompositionB()
    {
        return $this->compositionB;
    }

    public function setCompositionC(CompositionC $compositionC)
    {
        $this->compositionC = $compositionC;

        return $this;
    }

    public function getCompositionC()
    {
        return $this->compositionC;
    }
}

B类

    

C类

    

接口

    

在实例化CompositionA 的时候并不会直接实例化其他类,这里只是清楚限定了CompositionB类作为参数类型传入setCompotionB方法,这里理解的组合就是:有提供组合的方法提供外界指定的类进行自由组合,并且使用组合当中的方法。

以上仅是个人的理解,不知道这对类的关系有没有帮助,最近在学习设计模式,概念有点模糊,还请各路英雄指点。感谢

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20819.html

相关文章

  • 人人都是 API 设计师:我 RESTful API、GraphQL、RPC API 思考

    摘要:通常情况下,伪都是基于第一层次与第二层次设计的。为了解决这个版本不兼容问题,在设计的一种实用的做法是使用版本号。例如,建议第三位版本号通常表示兼容升级,只有不兼容时才需要变更服务版本。 原文地址:梁桂钊的博客 博客地址:blog.720ui.com 欢迎关注公众号:「服务端思维」。一群同频者,一起成长,一起精进,打破认知的局限性。 有一段时间没怎么写文章了,今天提笔写一篇自己对 API 设...

    ormsf 评论0 收藏0
  • 人人都是 API 设计师:我 RESTful API、GraphQL、RPC API 思考

    摘要:通常情况下,伪都是基于第一层次与第二层次设计的。为了解决这个版本不兼容问题,在设计的一种实用的做法是使用版本号。例如,建议第三位版本号通常表示兼容升级,只有不兼容时才需要变更服务版本。 原文地址:梁桂钊的博客博客地址:http://blog.720ui.com 欢迎关注公众号:「服务端思维」。一群同频者,一起成长,一起精进,打破认知的局限性。 有一段时间没怎么写文章了,今天提笔写一篇...

    FWHeart 评论0 收藏0
  • 精读《Tableau 探索式模型》

    摘要:比如我们对调与会怎样我们得到了三个不同类目近个月的趋势,之所以是折线图,因为图表的维度轴列是连续的。在正式介绍标记区域前,先理解一下为何会发生这种转变表格类组件是双维度组件,折线图是单维度组件。 1. 引言 Tableau 探索式分析功能非常强大,各种功能组合似乎有着无限的可能性。 今天笔者会分析这种探索式模型解题思路,一起看看这种探索式分析功能是如何做到的。 2. 精读 要掌握探索式...

    curried 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<