首页 > 其他分享 >七大设计原则(三)

七大设计原则(三)

时间:2024-04-15 22:55:28浏览次数:24  
标签:组合 原则 继承 合成 七大 复用 设计 父类

合成复用原则

合成复用原则的定义如下:

合成复用原则(Composite Reuse Principle,CRP):尽量使用对象组合,而不是继承来达到复用的目的。

合成复用原则强调,如果一个功能可以同时通过继承与组合实现,应该首先考虑使用组合。首先,相对于继承来说,组合能让代码变化的修改范围变得更小。一个父类发生变化,它的子类也会随之发生变化。其次,继承破坏了系统的封装性,父类的实现细节被暴露给了子类。而组合则相反,一个类将另一个类作为它的成员时,知道该类实现细节就可以使用该对象实现功能。最后,从父类继承来的功能是静态的,不能在运行时改变,而通过组成获得的功能是动态的,具有更高的灵活性。

标签:组合,原则,继承,合成,七大,复用,设计,父类
From: https://www.cnblogs.com/xyhj/p/18137106

相关文章

  • [题解][2021-2022年度国际大学生程序设计竞赛第10届陕西省程序设计竞赛] Type The Str
    题目描述给定n个字符串,有以下几种操作:打出一个字符,花费1。删除一个字符,花费1。复制并打出一个之前打出过的字符串,花费k。求打出所有n个字符串的最小花费。(注意,打出顺序和字符串输入的顺序不必相同)题解显然,操作3需要算字符串的最长公共子序列来处理。这个问题可以转换为......
  • [题解][2021-2022年度国际大学生程序设计竞赛第10届陕西省程序设计竞赛] Hash
    题目描述给定字符串T,要求求字符串S,满足以下条件:S是T的前缀S和T运行某段代码的哈希值相同(代码见下)T只包含小写字母S和T的长度差不超过50哈希代码://LanguageC++14longlongmod=5999993;longlonggethas(strings){longlongret=0;for(charc:s)ret=......
  • 《Vue.js设计与实现》 第七章 渲染器的设计
    7.1渲染器与响应系统的结合最简单的渲染器及其使用//渲染器functionrenderer(domString,container){container.innerHTML=domString}//使用letcount=1renderer(`<h1>${count}</h1>`,document.getElementById('app'))渲染器与响应式系统结合constcount......
  • 实验一原型设计—恰饭app
    一、实验题目:原型设计二、实验目的:掌握产品原型设计方法和相应工具使用。三、实验要求:对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点(至少3条)。答:1.适用领域:墨刀:墨刀是一款在线的移动应用原型与线框图工具,适合设计团队和个人用户使用,用于移动端和We......
  • 实验一原型设计——东南西北行app
    一、实验题目:原型设计二、实验目的:掌握产品原型设计方法和相应工具使用。三、实验要求(1)对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点(至少3条)。墨刀、Axure和Mockplus都是流行的原型设计工具,它们各自在适用领域和优缺点上有所不同。以下是对这些工具......
  • 软件设计师考试大纲
    软件设计师(中级)考试大纲[1]考试时间分布各级别考试均分2个半天进行。高级资格综合知识科目考试时间为2.5小时,案例分析科目考试时间为1.5小时、论文科目考试时间为2小时。初级和中级资格各科目考试时间均为2.5小时。计算机专业技术资格(水平)考试原则上每年组织两次,在每年第二......
  • 易基因:ENCODE和modENCODE联盟的ChIP-seq实验设计指南和注意事项|干货
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。ChIP-seq(染色质免疫沉淀测序)实验指南和实践(ChIP-seqguidelinesandpracticesoftheENCODEandmodENCODEconsortia),由ENCODE(EncyclopediaofDNAElements)和modENCODE(ModelOrganismENCODE)联盟研究人员撰写。文......
  • day01-02_我的Java学习笔记 (IDEA的安装、配置及使用、IDEA常用快捷键、IEDA创建空工
    1.IDEA的安装及配置1.1IDEA的安装具体操作,详见《04、IDEA安装详解.pdf》1.2IDEA主题配置、字体配置1.3IDEA常用快捷键1.4IDEA修改快捷键在IDEA工具中,Ctrl+空格的快捷键,可以帮助我们补全代码,但是这个快捷键和Windows中的输入法切换快捷键冲突,需要修改IDEA中......
  • 黑盒测试用例设计技术-语法测试原则及案例
    语法测试用例设计原则选项导出原则:当语法规则强制选择时,为该选择的每个备选方案导出一个测试用例(“选项”)。最小与最大重复次数原则:当语法规则强制执行最小重复次数时,应为此导出至少两个测试用例:一个满足最小重复次数,另一个不满足(小于最小重复次数)。当语法规则允许最大重复......
  • 简单智能手机原型设计
    实验一一、实验题目:原型设计二、实验目的:掌握产品原型设计方法和相应工具使用。三、实验要求与过程(1)对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点。1、墨刀适用领域:墨刀主要适用于移动应用、小程序等交互设计,尤其擅长快速原型设计和高保真度的交......