`

Java与设计模式--chapter 10 合成/聚合复用原则

阅读更多
第十章:合成/聚合复用原则
    合成/聚合复用原则经常又叫合成复用原则。合成聚合复用原则就是在一个新的对象里面用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委托达到复用已有功能的目的。
    这个原则有另一个更简短的表述;要尽量使用合成/聚合,尽量不要使用集成。

复用的基本种类
   在面向对象的设计中。有两种基本的方法可以在不同的环境中复用已有的设计和实现,即通过合成/聚合或通过继承。
  
   合成/聚合复用比继承复用的好处:
   新对象存取成分对象的唯一方法是通过成分对象的接口。
   这样复用是黑箱复用,因为成分对象的内部细节是新对象所看不见的。
   这样复用支持包装。
   这种复用所需的依赖较少。
   每一个新的类可以将焦点集中在一个任务上。
   这种复用可以在运行时间内动态进行,新对象可以动态的引用与成分对象类型相同的对象


分享到:
评论

相关推荐

    基于Java的SpringCloud-Learning学习设计源码

    本项目是基于Java的SpringCloud-Learning学习设计源码,包含154个文件,其中包括55个Properties文件、54个Java源文件、25个XML文件和4个Markdown文档。此外,项目还包括1个gitignore文件和1个chapter1-1-1/compute-...

    [源代码] 修炼Java开发技术 在架构中体验设计模式和算法之美 (源代码)

    ☆ 资源说明:☆《修炼Java开发技术 在架构中体验设计模式和算法之美》 (随书源代码)☆ 开发环境:☆IntelliJ IDEA 13.1.5 Build 135.1289☆ 章节说明:☆Chapter 02 架构中的设计原则 - (Chapter02.rar)Chapter 03 ...

    struts框架搭建

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <constant name="struts.enable.DynamicMethodInvocation" value="false"/> ...

    Java 8 Lambdas 练习及答案.zip

    Java 8 Lambdas 练习及答案java-8-lambdas 练习这个 git 存储库包含Java 8 Lambdas书籍的支持材料。项目结构整体代码布局如下代码位于src/main/java测试正在进行中src/test/java这些目录中的内容按包进行组织涉及...

    Absolute.OpenBSD.UNIX.For.The.Practical.Paranoid.eBook-LiB.7z

    Chapter 10 - Additional Security Features Chapter 11 - Basic Kernel Configuration Chapter 12 - Building Custom Kernels Chapter 13 - Add-On Software Chapter 14 - /ETC Chapter 15 - Disk and ...

    面向对象程序设计(Java)第六章例题代码-J7chapter2

    面向对象程序设计(Java)第六章例题代码-J7chapter2面向对象程序设计(Java)第六章例题代码-J7chapter2面向对象程序设计(Java)第六章例题代码-J7chapter2面向对象程序设计(Java)第六章例题代码-J7chapter2面向...

    面向对象程序设计(Java)第七章例题代码-J7chapter2

    面向对象程序设计(Java)第七章例题代码-J7chapter2面向对象程序设计(Java)第七章例题代码-J7chapter2面向对象程序设计(Java)第七章例题代码-J7chapter2面向对象程序设计(Java)第七章例题代码-J7chapter2面向...

    面向对象程序设计(Java)第五章例题代码-J7chapter2

    面向对象程序设计(Java)第五章例题代码-J7chapter2面向对象程序设计(Java)第五章例题代码-J7chapter2面向对象程序设计(Java)第五章例题代码-J7chapter2面向对象程序设计(Java)第五章例题代码-J7chapter2面向...

    面向对象程序设计(Java)第八章例题代码-J7chapter2

    面向对象程序设计(Java)第八章例题代码-J7chapter2面向对象程序设计(Java)第八章例题代码-J7chapter2面向对象程序设计(Java)第八章例题代码-J7chapter2面向对象程序设计(Java)第八章例题代码-J7chapter2面向...

    面向对象程序设计(Java)第四章例题代码-J7chapter2

    面向对象程序设计(Java)第四章例题代码-J7chapter2面向对象程序设计(Java)第四章例题代码-J7chapter2面向对象程序设计(Java)第四章例题代码-J7chapter2面向对象程序设计(Java)第四章例题代码-J7chapter2面向...

    面向对象程序设计(Java)第三章例题代码-J7chapter2

    面向对象程序设计(Java)第三章例题代码-J7chapter2面向对象程序设计(Java)第三章例题代码-J7chapter2面向对象程序设计(Java)第三章例题代码-J7chapter2面向对象程序设计(Java)第三章例题代码-J7chapter2面向...

    面向对象程序设计(Java)第二章例题代码-J7chapter2

    面向对象程序设计(Java)第二章例题代码-J7chapter2面向对象程序设计(Java)第二章例题代码-J7chapter2面向对象程序设计(Java)第二章例题代码-J7chapter2面向对象程序设计(Java)第二章例题代码-J7chapter2面向...

    jdk6.0从入门到精通-----chapter5网络编程 新I/O(含源码下载)

    在Java编程领域,JDK(Java Development Kit)是开发和运行Java应用程序的基础,而JDK 6.0是Oracle公司发布的较早版本之一,对于学习Java的初学者来说,它是入门的重要工具。本章节我们将深入探讨JDK 6.0中的网络...

    pro-vagrant-all-examples

    chapter-02/songs-app-angularjs/chapter-02/songs-app-django/chapter-02/songs-app-rails/chapter-02/songs-app-symfony/3.3。 第3章。 chapter-03/songs-app-sinatra/3.4。 第四章chapter-04/new-p

    java-programming-chapter-interview.zip_java programming

    《Java编程篇面试宝典》是一份专门为Java程序员准备的面试指南,涵盖了广泛的知识点,旨在帮助求职者在面试中脱颖而出。这份资料的核心是“JAVA面试题集编程篇.pdf”,它整理了Java编程领域的常见问题和解答,为面试...

    Practical Machine Learning Cookbook

    Practical Machine Learning Cookbook by Atul Tripathi English | 14 Apr. 2017 | ASIN: B01JLBMC9K | 570 Pages | AZW3 | 38.79 MB Key Features Implement a wide range of algorithms and techniques for ...

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    Java设计模式是面向对象编程...在阅读《Chapter1___Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)》的相关资料时,你可以更深入地学习这些模式的细节,包括适用场景、优缺点以及如何在实际项目中实现。

    IIS 6: The Complete Reference

    Chapter 10 - Encryption Chapter 11 - Logging Part III - IIS Programming Chapter 12 - ASP Programming Chapter 13 - COM Web Programming Chapter 14 - ASP.NET Web Forms Chapter 15 - ASP.NET ...

    Practical Java Game Programming

    Chapter 10 - Java as a Scripting Language Chapter 11 - Java Native Interface Chapter 12 - 3D Graphics Foundations Chapter 13 - Java Bindings to OpenGL (JOGL) Chapter 14 - Overlays and Menus ...

    java第10章java-chapter10.rar

    在这一章,可能会讨论一些常见的设计模式,如单例模式、工厂模式、装饰器模式等,以及如何在Java中实现它们。 8. **JVM内存管理**:理解Java虚拟机(JVM)如何进行内存分配和垃圾回收是优化程序性能的关键。这包括...

Global site tag (gtag.js) - Google Analytics