当前位置: 首页 > wzjs >正文

无锡网站建设的公司西安企业做网站

无锡网站建设的公司,西安企业做网站,广州那里有学做拼多多网站的,做博彩类网站费用合成复用原则 也被称为组合复用原则或聚合复用原则。 合成复用原则提倡尽量使用组合或者聚合等关联关系来实现代码复用,而不是通过继承关系来复用代码。组合是一种强的 “拥有” 关系,体现了严格的部分和整体的关系,部分和整体的生命周期一…

合成复用原则

也被称为组合复用原则或聚合复用原则。

合成复用原则提倡尽量使用组合或者聚合等关联关系来实现代码复用,而不是通过继承关系来复用代码。组合是一种强的 “拥有” 关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样;聚合是一种弱的 “拥有” 关系,体现的是整体与部分的关系,部分可以脱离整体而单独存在。

通常类的复用分为两类:合成复用和继承复用。

继承复用虽然有简单和易实现的优点,但它也存在以下缺点:
1.继承复用破坏了类的封装性。因为继承会将父类的实现细节暴露给子类,父类对子类是透明的,所以这种复用又称为“白箱’复用。
2.子类与父类的耦合度高。父类的实现的任何改变都会导致子类的实现发生变化,这不利于类的扩展与维护。
3.它限制了复用的灵活性。从父类继承而来·的实现是静态的,在编译时已经定义,所以在运行时,不可能发生变化。

采用组合或聚合复用时,可以将已有对象纳入新对象中,使其成为新对象的一部分,新对象可以调用已有对象的功能,它有以下优点:

1.灵活性更高:继承是一种静态的复用方式,子类与父类之间的关系在编译时就已经确定,不够灵活。而组合和聚合是在运行时动态地建立对象之间的关系,更具灵活性。例如,在一个图形绘制系统中,有 “图形” 类和 “颜色” 类,如果使用继承,每个具体图形类(如圆形、矩形)都需要继承颜色相关的属性和方法,当需要改变颜色的实现方式时,所有子类都可能受到影响。而使用组合,将 “颜色” 对象作为 “图形” 对象的一个成员变量,每个图形对象可以在运行时动态地设置自己的颜色,更加灵活。
2.避免类层次结构的复杂性:过度使用继承会导致类层次结构变得复杂,难以理解和维护。如果一个类继承了多个父类,或者继承层次过深,代码的可读性和可维护性都会降低。而组合和聚合可以将不同的功能模块组合在一起,每个模块相对独立,降低了系统的复杂度。
3.可维护性好:当被复用的模块发生变化时,由于组合和聚合关系中,对象之间是相对独立的,这种变化对其他模块的影响较小。而在继承关系中,父类的修改可能会导致子类的行为发生变化,需要对子类进行相应的修改,增加了维护成本。

案例:图形有各种形状,我们给其中部分涂上阴影,如果使用继承复用,会产生很多子类,如果又有新的形状,又需要定义新的类,而如果将继承复用改为聚合复用,会简单很多。以下是案例示例

//定义一个图形
public class Shape {public void draw(){System.out.println("绘制图形");}
}//定义圆形继承Shape
public class Circle extends Shape{@Overridepublic void draw() {System.out.println("绘制圆形");}
}//定义矩形,继承Shape
public class Rectangle extends Shape{@Overridepublic void draw() {System.out.println("绘制矩形");}
}
//添加阴影效果
class ShadowDecorator {private Shape shape;public ShadowDecorator(Shape shape) {this.shape = shape;}public void draw() {shape.draw();System.out.println("添加阴影效果");}
}
public class Main {public static void main(String[] args) {Shape circle = new Circle();ShadowDecorator circleWithShadow = new ShadowDecorator(circle);Shape rectangle = new Rectangle();ShadowDecorator rectangleWithShadow = new ShadowDecorator(rectangle);circle.draw();circleWithShadow.draw();rectangle.draw();rectangleWithShadow.draw();}
}

运行结果

http://www.dtcms.com/wzjs/251588.html

相关文章:

  • 安阳网站建设公司代写文章
  • 诚信档案建设网站首页西安网络公司
  • 国内顶级网站制作公司腾讯企点官网下载
  • 做平面设计在那个网站上找图好重庆做网络优化公司电话
  • 郑州做网站zztuotian网络营销方案ppt
  • 中山市网站建设企业关键词优化公司
  • 教做衣服的网站做网店自己怎么去推广
  • 婴儿网站模板外链网盘
  • 北京网站建设电话化学sem是什么意思
  • 网站设计制作一条龙多少钱百度关键词排名怎么做
  • 做网站送白酒网站源码平台
  • 婚庆公司网站模板互联网广告联盟
  • 深圳个人网站建设深圳seo顾问
  • 网页基础知识佛山seo培训机构
  • 张家港手机网站建设网站推广软件下载安装免费
  • 企业网站优化案例网站推广的基本方法是
  • 杭州萧山做网站公司域名注册需要多久
  • 动态wordpress动态主题西安seo报价
  • 有没有做网站网络公司起名
  • 设计师必去的网站适合30岁女人的培训班
  • 南昌高端网站建设适合发朋友圈的营销广告
  • 深圳网站建设相关推荐新闻软文发稿平台
  • 个人网站论坛展示建站工具
  • wordpress客户表单数据库石家庄谷歌seo
  • 自做网站多少钱郑州竞价托管代运营
  • 网站建设 7 24榆林百度seo
  • 企业网站建设杭州广州seo网站
  • 阿坝北京网站建设谷歌引擎搜索入口
  • 毕业设计做网站有什么好的创意百度云盘官网
  • 重庆南昌网站建设sem是什么意思?