HTML5技术

详解设计模式六大原则 - 请叫我头头哥(4)

字号+ 作者:H5之家 来源:博客园 2015-10-20 09:22 我要评论( )

其实接口隔离原则很好理解,在上面的例子里可以看出来,如果把OA的外部和内部都定义一个接口的话,那这个接口会很大,而且实现接口的类也会变得臃肿。 v C# 合成/聚合复用原则 1.概念: 合成/聚合复用原则(Composi

其实接口隔离原则很好理解,在上面的例子里可以看出来,如果把OA的外部和内部都定义一个接口的话,那这个接口会很大,而且实现接口的类也会变得臃肿。

C# 接口隔离原则

vC# 合成/聚合复用原则

1.概念: 

合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)经常又叫做合成复用原则。合成/聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。它的设计原则是:要尽量使用合成/聚合,尽量不要使用继承。

2.合成/聚合解析: 

  • 聚合概念: 

    聚合用来表示“拥有”关系或者整体与部分的关系。代表部分的对象有可能会被多个代表整体的对象所共享,而且不一定会随着某个代表整体的对象被销毁或破坏而被销毁或破坏,部分的生命周期可以超越整体。例如,Iphone5和IOS,当Iphone5删除后,IOS还能存在,IOS可以被Iphone6引用。

    聚合关系UML类图: 

    C# 合成/聚合复用原则

    代码演示: 

    //------------------------------------------------------------------------------ // <copyright file="Dependency.cs" company="CNBlogs Corporation"> // Copyright (C) 2015-2016 All Rights Reserved 作 者: 请叫我头头哥 // </copyright> TestLibrary.ExtensionsClass { class IOS { } class Iphone5 { private IOS ios; public Iphone5(IOS ios) { this.ios = ios; } } }

  • 合成概念: 

    合成用来表示一种强得多的“拥有”关系。在一个合成关系里,部分和整体的生命周期是一样的。一个合成的新对象完全拥有对其组成部分的支配权,包括它们的创建和湮灭等。使用程序语言的术语来说,合成而成的新对象对组成部分的内存分配、内存释放有绝对的责任。一个合成关系中的成分对象是不能与另一个合成关系共享的。一个成分对象在同一个时间内只能属于一个合成关系。如果一个合成关系湮灭了,那么所有的成分对象要么自己湮灭所有的成分对象(这种情况较为普遍)要么就得将这一责任交给别人(较为罕见)。例如:水和鱼的关系,当水没了,鱼也不可能独立存在。

    合成关系UML类图: 

    C# 合成/聚合复用原则

    代码演示: 

    //------------------------------------------------------------------------------ // <copyright file="Dependency.cs" company="CNBlogs Corporation"> // Copyright (C) 2015-2016 All Rights Reserved 作 者: 请叫我头头哥 // </copyright> TestLibrary.ExtensionsClass { using System; class Fish { public Fish CreateFish() { Console.WriteLine(); return new Fish(); } } class Water { private Fish fish; public Water() { fish = new Fish(); } public void CreateWater() { // 当创建了一个水的地方,那这个地方也得放点鱼进去 fish.CreateFish(); } } }

  • 3.模拟场景: 

    比如说我们先摇到号(这个比较困难)了,需要为自己买一辆车,如果4S店里的车默认的配置都是一样的。那么我们只要买车就会有这些配置,这时使用了继承关系:

    C# 合成/聚合复用原则

    不可能所有汽车的配置都是一样的,所以就有SUV和小轿车两种(只列举两种比较热门的车型),并且使用机动车对它们进行聚合使用。这时采用了合成/聚合的原则:

    C# 合成/聚合复用原则

    vC# 迪米特法则

    1.概念: 

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 设计模式(1)单例模式(Singleton) - Fonour

      设计模式(1)单例模式(Singleton) - Fonour

      2017-04-23 12:00

    • ASP.NET Core MVC 源码学习:详解 Action 的激活 - Savorboard

      ASP.NET Core MVC 源码学习:详解 Action 的激活 - Savorboard

      2017-04-14 13:04

    • EntityFramework Core并发深挖详解,一纸长文,你准备好看完了吗? - Jeffcky

      EntityFramework Core并发深挖详解,一纸长文,你准备好看完了吗? -

      2017-04-05 14:03

    • ASP.NET Core MVC 源码学习:详解 Action 的匹配 - Savorboard

      ASP.NET Core MVC 源码学习:详解 Action 的匹配 - Savorboard

      2017-03-30 18:02

    网友点评
    <