ComposieAggregate Reuse Principle 合成复用原则
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 合成复用原则相关推荐
- 面向对象编程原则(08)——合成复用原则
版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 参考资料 <大话设计模式> 作者:程杰 <Java设计模式> 作者:刘 ...
- 07.合成复用原则(Composite/Aggregate Reuse Principle,CARP)
1.定义 指尽量使用对象 组合(has-a)/聚合(contanis-a),而不是继承关系达到软件复用的目的 继承我们叫做白箱复用,相当于把所有的实现细节暴露给子类.组合/聚合也称之为黑箱复用,对类以 ...
- 合成复用原则(Composite Reuse Principle)
1 前言 在面向对象的程序设计中,重用一直以来都是我们所追求的目标,这也被认为是面向对象的重要价值.一直以来,面向对象的三大特性之一的继承性,是我们实现了高度的可重用性的重要法宝.然而,继承虽然能够很 ...
- 设计模式的七大设计原则:其七:合成复用原则
合成复用原则(Composite Reuse Principle) 基本介绍: 原则是尽量使用合成/聚合的方式,而不是使用继承. 设计原则核心思想: 1.找出应用中可能需要变化之处,把它们独立出来,不 ...
- 4.7 合成复用原则
一. 合成复用原则的定义 合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle, ...
- 【设计模式】设计原则:CARP 合成复用原则
合成复用原则(Composite/Aggregate Reuse Principle,CARP)是指尽量使用对象组合(has-a)/聚合(contanis-a),而不是继承关系达到软件复用的目的.可以 ...
- 设计模式-合成复用原则-》面向对象设计原则
合成复用原则是面向对象设计原则的 7 条原则中剩下的最后一条,下面我们将对其进行详细地介绍. 合成复用原则的定义 合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚 ...
- 细说设计模式七大原则(7):合成复用原则
基本介绍 英文名:Composite Reuse Principle,CRP 定义:软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现 问题由来:通常类的复用分为继承复 ...
- 软件设计原则 —— 迪米特原则和合成复用原则
迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的 ...
最新文章
- 改进SmallNet的BCI可以用于BrainRunners电子游戏的脑电解码分类
- mybaits十八:内置标签
- 巧用Windows Phone应用商城中的应用链接
- OpenSSL使用3(基本原理及生成过程)(转)
- SharePoint自动化系列——Solution auto-redeploy using Selenium(C#)
- colab文件夹上传到github
- 前后端分离中的权限管理思路
- 20155201 实验四《Java面向对象程序设计》实验报告
- document.body 与 document.documentElement区别介绍
- 32位ubuntu 使用pae
- HCIE-Security Day30:IPSec:实验(五)配置基于路由的IPSec PN(采用预共享密钥认证)
- keil4 c51安装教程
- 投标文件 医院弱电系统_甲级办公楼智能化弱电设计方案适合弱电行业人士学习!...
- c语言程序中文复制到word变乱码,怎么复制C程序代码到Word不会有乱码,不会有乱字等情况...
- 多线程的实现和使用场景
- 自动驾驶(十五)---------再论轨迹规划
- 三菱FX系列PLC面板布置和PLC系统构成
- Tiled瓦片地图的使用
- 牛客-Mysql实战-按热度排序(前20)
- 淘宝店小蜜配置手册——自定义知识库的应答模式与测试