Composie&Aggregate Reuse Principle 合成复用原则

简介

定义:尽量使用对象组合、聚合、而不是继承关系达到软件复用的目的

主要核心思想

尽量使用对象组合、聚合,而不使用继承关系达到代码复用的目的。
聚合has-a和组合contains-a

优点

  • 可以使系统更加灵活,降低类与类之间的耦合度
  • 一个类的变化对其他类造成的影响相对较少

实践案例

数据库连接为例

public abstract class DBConnection {public abstract String getConnection();
}
public class MySQLConnection extends DBConnection {@Overridepublic String getConnection() {return "获取MySQL连接";}
}
public class OracleConnection extends DBConnection {@Overridepublic String getConnection() {return "获取Oracle连接";}
}
public class ProductDao {private DBConnection dbConnection;//    public ProductDao(DBConnection dbConnection) {//        this.dbConnection = dbConnection;
//    }public void setDbConnection(DBConnection dbConnection) {this.dbConnection = dbConnection;}public void addProduct(){String conn = dbConnection.getConnection();System.out.println(conn);}
}

DBConnection 和 ProductDao使用的组合

ComposieAggregate Reuse Principle 合成复用原则相关推荐

  1. 面向对象编程原则(08)——合成复用原则

    版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 参考资料 <大话设计模式> 作者:程杰 <Java设计模式> 作者:刘 ...

  2. 07.合成复用原则(Composite/Aggregate Reuse Principle,CARP)

    1.定义 指尽量使用对象 组合(has-a)/聚合(contanis-a),而不是继承关系达到软件复用的目的 继承我们叫做白箱复用,相当于把所有的实现细节暴露给子类.组合/聚合也称之为黑箱复用,对类以 ...

  3. 合成复用原则(Composite Reuse Principle)

    1 前言 在面向对象的程序设计中,重用一直以来都是我们所追求的目标,这也被认为是面向对象的重要价值.一直以来,面向对象的三大特性之一的继承性,是我们实现了高度的可重用性的重要法宝.然而,继承虽然能够很 ...

  4. 设计模式的七大设计原则:其七:合成复用原则

    合成复用原则(Composite Reuse Principle) 基本介绍: 原则是尽量使用合成/聚合的方式,而不是使用继承. 设计原则核心思想: 1.找出应用中可能需要变化之处,把它们独立出来,不 ...

  5. 4.7 合成复用原则

    一. 合成复用原则的定义 合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle, ...

  6. 【设计模式】设计原则:CARP 合成复用原则

    合成复用原则(Composite/Aggregate Reuse Principle,CARP)是指尽量使用对象组合(has-a)/聚合(contanis-a),而不是继承关系达到软件复用的目的.可以 ...

  7. 设计模式-合成复用原则-》面向对象设计原则

    合成复用原则是面向对象设计原则的 7 条原则中剩下的最后一条,下面我们将对其进行详细地介绍. 合成复用原则的定义 合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚 ...

  8. 细说设计模式七大原则(7):合成复用原则

    基本介绍 英文名:Composite Reuse Principle,CRP 定义:软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现 问题由来:通常类的复用分为继承复 ...

  9. 软件设计原则 —— 迪米特原则和合成复用原则

    迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的 ...

最新文章

  1. 改进SmallNet的BCI可以用于BrainRunners电子游戏的脑电解码分类
  2. mybaits十八:内置标签
  3. 巧用Windows Phone应用商城中的应用链接
  4. OpenSSL使用3(基本原理及生成过程)(转)
  5. SharePoint自动化系列——Solution auto-redeploy using Selenium(C#)
  6. colab文件夹上传到github
  7. 前后端分离中的权限管理思路
  8. 20155201 实验四《Java面向对象程序设计》实验报告
  9. document.body 与 document.documentElement区别介绍
  10. 32位ubuntu 使用pae
  11. HCIE-Security Day30:IPSec:实验(五)配置基于路由的IPSec PN(采用预共享密钥认证)
  12. keil4 c51安装教程
  13. 投标文件 医院弱电系统_甲级办公楼智能化弱电设计方案适合弱电行业人士学习!...
  14. c语言程序中文复制到word变乱码,怎么复制C程序代码到Word不会有乱码,不会有乱字等情况...
  15. 多线程的实现和使用场景
  16. 自动驾驶(十五)---------再论轨迹规划
  17. 三菱FX系列PLC面板布置和PLC系统构成
  18. Tiled瓦片地图的使用
  19. 牛客-Mysql实战-按热度排序(前20)
  20. 淘宝店小蜜配置手册——自定义知识库的应答模式与测试

热门文章

  1. MapReduce编程练习
  2. 2021年G2电站锅炉司炉考试报名及G2电站锅炉司炉考试试卷
  3. 【MySQL】一条SQL查询本年度每月即将退休的人数?
  4. 生活中的定律之刺猬理念
  5. Hbase Coprocessor 协处理器 与 JavaAPI
  6. 戴尔灵越16Plus 2022款怎么样?测评值得买吗?详细性能点评
  7. C++(17):overload模式
  8. 5个步骤,教你瞬间明白线程和线程安全
  9. CRM客户关系管理软件排名
  10. iOS开发进阶 - 使用shell脚本自动打包上传到fir.im上