位置: IT常识 - 正文

【GoF 23】23种设计模式与OOP七大原则概述

发布时间:2024-01-17
【GoF 23】23种设计模式与OOP七大原则概述 1. 什么是GoF 23?

推荐整理分享【GoF 23】23种设计模式与OOP七大原则概述,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

GoF 23也就是23种设计模式。1995年GoF(Gang of Four,四人组/四人帮)合作出版了《设计模式:可复用面向对象软件的基础》一书,一共收录了23种设计模式,从此梳理了软件设计模式领域的里程碑,人称[GoF设计模式]。

2. 什么是设计模式?

设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性、多态性以及类的关联关系和组合关系的充分理解。

【GoF 23】23种设计模式与OOP七大原则概述

是前辈们对代码开发经验的总结,是解决特定问题的一些列套路。它不是语法规定,而是一套用来提高代码可复用性、可读性、可维护性、稳健性以及安全性的解决方案。

正确使用设计模式具有以下优点:

可以提高程序员的思维能力、编程能力和设计能力。是程序设计更加标准化、代码编制更加工程化,是软件开发效率大大提高,从而缩短软件的开发周期。使设计的代码可复用性高、可读性强、可靠性高、灵活性好、可维护性强。3. 23种设计模式分类创建型模式:抽象了对象实例化的过程,用来帮助创建对象的实例

单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。

结构型模式:描述如何组合类和对象,以获得更大的结构

适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

行为模式:描述算法和对象间职责的分配

模板方法模式、命令模式、迭代器模式、观察者模式、中介模式、备忘录模式、解释器模式、状态模式、策略模式、职责模式、访问者模式。

4. 什么是OOP七大原则?

OOP即面向对象七大原则。

开闭原则: 对扩展开放,对修改关闭。也就是在扩展功能时,不能去修改原有的代码,而是在原有的代码基础上进行功能扩展。里氏替换原则: 继承必须确保超类所拥有的性质在子类中任然成立。尽量添加新的方法来实现新的功能,不要重写父类的方法来实现功能,否则程序的可复用性就会变差,在多态的场景下程序也会出现错误。依赖倒置原则: 要面向接口编程,不要面向现实编程。高层模块不应该依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象,这样就降低了程序的耦合度。单一职责(功能)原则: 控制类的粒度的大小、将对象解耦、提高其内聚性。即一个方法、语句、表达式应该单一的做一件事情,不要用一个方法来实现多个功能。接口隔离原则: 要为各个类建立它们需要的专用接口。一个类对应一个接口,不要用多个类实现同一个接口。类似单一实现。迪米特法则: 只与你的直接朋友交谈,不跟“陌生人”说话。保证A-B-C链式调用,不要A直接与C通信。缺点就是B有点冗余,但重点还是要保证系统结构清晰。合成复用原则: 尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。也就是尽量先考虑将对象B作为对象A的属性来使用,其次才是考虑继承(开闭原则的实现)。 组合:父类可以拥有子类,子类不能独立于父类存在。 聚合:父类可以包含子类,子类可以独立于父类存在。
本文链接地址:https://www.jiuchutong.com/zhishi/299314.html 转载请保留说明!

上一篇:Vue--》MVVM模型在Vue中的使用(vue的mvvm模型)

下一篇:使用 JavaScript 检测用户是否在线(js检查json是否合法)

  • 企业所得税税前扣除管理办法
  • 外地多预交的税款申报时该怎么填写?
  • 电梯的税收筹划怎么做
  • 公司货款退款怎么写
  • 工资薪金可以抵扣进项税吗
  • 应收账款计入借方贷方
  • 母公司捐赠资金给子公司
  • 季度申报后还要年度申报吗
  • 摊销折旧是什么意思
  • 在账务处理过程中,最关键的环节是
  • 法人资本个人资本
  • 差额事业单位的工资是由财政开支吗
  • 公司领导培训费怎么入账
  • 12月份费用可以计提吗
  • 合资公司51%股东的权限
  • 企业所得税成本确认原则
  • 增值税普通发票怎么开
  • 国税退税需要多长时间
  • 车辆购置税入什么科目?
  • 税务局代开专用发票要缴纳城建税吗?
  • 其他应付款余额在借方表示什么意思
  • 诉讼费和保全费什么时候能退还
  • 怎样申请退税费
  • 应付账款核销法律规定
  • 退货入库流程图
  • 现金支票存根会计要签字吗
  • 提供有形动产租赁服务的增值税税率是
  • 分公司向总公司转钱可以吗
  • 个人所得汇算清缴是什么
  • 使用ps能完成的操作有哪些
  • win10更新kb5006670
  • 采购及安装合同怎么缴纳印花税
  • 美容美发属于什么品类
  • 第一启动盘设置为u盘
  • aliwssv.exe是什么进程
  • 另一种答案
  • uniapp cover-view
  • thinkphp5自定义标签
  • 外籍人员一次性奖金
  • 表单校验html5
  • 可供出售金融资产和交易性金融资产
  • 期末应交增值税转入未交增值税
  • php常见错误
  • 怎样退出快手粉丝团 已解决
  • js fetch api
  • vue快速入门与实战开发
  • php session用法
  • php图像识别技术是什么
  • 金融企业贷款损失
  • 出售一台设备,收到价款20万
  • phpcms v9官网
  • 红字更正法和红字冲销的区别
  • 现金股利算负债吗
  • MongoDB的mongo shell常用操作方法及操作脚本笔记
  • 工会经费怎么计算缴纳
  • sql server 2008使用
  • ms sql 2012
  • 企业所得税预缴申报表
  • 出口退税帐务处理
  • 其他应收款收不回来怎么写情况说明
  • 在建工程的成本包括应交增值税吗
  • 公司在银行的贷款会计分录
  • 结转未交增值税为什么是零
  • 非营利机构如何申请
  • 研发费用资本化条件
  • 收到发票税点计入什么科目
  • 客房服务费可以开发票吗
  • 明细分类账怎么做表格
  • win8链接wi-fi
  • vmware10虚拟机安装
  • 如何更改ubuntu下载源
  • mac安装win10键盘失灵
  • centos zsh
  • win8 升级 win10
  • 批处理有何限制
  • 如何检查自己是否抑郁
  • 安卓自定义状态栏图标
  • easyui发送ajax请求
  • 发票红冲产生费用吗?
  • 公积金个人网上开户流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号