软件设计模式概览

两大经验

  • 对接口编程而不是对实现编程
  • 优先使用对象组合而不是继承

三类设计模式

创建型模式

创建对象时, 灵活选取创建方式, 而不是直接new
在这里插入图片描述

结构型模式

关注类和对象的组合, 使用继承组合接口和定义组合对象
在这里插入图片描述

行为型模式

关注对象之间的通信
在这里插入图片描述

七大原则 SOLID +2(DC)

单一原则 SRP

每个类尽量就只实现一个功能

开闭原则 OCP

对扩展开放, 对修改关闭
尽量使用接口和抽象类

里氏替换原则 LSP

任何基类可以出现的地方, 子类一定可以出现

反例

正方形是矩形的一个特例, 则设正方形为矩形的子类, 但是子类不支持父类的"单独设置长宽高", 违反了LSP

接口隔离原则 ISP

使用多个隔离的接口比使用单个接口好
客户端不应该依赖他不需要的接口,类间的关系应该建立在最小的接口上。
降低类之间的耦合度

依赖倒转原则 DIP

针对接口编程, 依赖于抽象而不依赖于具体, 高层module是调用端, 低层模块是具体实现类

  • 高层不应该依赖于低层module, 二者应该都依赖于抽象
  • 抽象不依赖于细节, 细节应该依赖于抽象
  • 面向抽象编程, 而不是面向具体(implement)编程

迪米特法则(最少知道法则) DP

一个实体应尽量少的与其他实体之间发生相互作用
保持系统模块相对独立

合用复用原则 CRP

尽量使用合成聚合的方式, 而不是使用继承

参考链接

http://www.runoob.com/design-pattern/design-pattern-intro.html
https://blog.csdn.net/CrazyMo_/article/details/79261631

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值