【设计模式】设计模式概论

软件设计的核心目标是高内聚、低耦合,概念是抽象的,需要不断的具体实践体会与总结。
正交四原则与SOLID原则。

正交四原则与SOLID原则

正交四原则:

  1. 最小化重复
  2. 分离变化
  3. 缩小依赖范围
  4. 向稳定方向依赖

SOLID原则
单一职责(对应原则1和2,下同)、向扩展开放向修改封闭(2)、子类要能替换父类(4)、最小化接口依赖(3)、依赖倒置(4)。

23种设计模式

从两个维度分类,一个是类与对象模式,另一个维度分为创建型、结构型、行为型。了解常用的。

创建型模式例子

工厂方法

以常见的图书馆管理系统为例,其要生成不同类型的账户(学生、教授、访学者),考虑到未来新增账户类型的需求,用工厂方法将生成过程独立出来。

抽象工厂方法

图书馆管理系统查询不同领域书籍的列表,需不同的工厂类实现,如文学类、专业类,新增按语言筛选功能。

结构型模式例子

适配器模式

读者账户登录方式的实现,功能类已实现账号-密码方法,需要增加手机短信登录、二维码扫描登录。一般实现即在该类中增加新的方法,但违反了开闭原则;可以增加接口类,接口类提供不同方法的接口,新建一个类继承接口类与原功能类,复用已有方法,并实现新方法。
一般用对象的适配器模式,即Wrapper类。
避免大量使用适配器,若有很多适配器,需要重新设计系统。

外观模式

还书函数要调用多个函数,如计算逾期费、支付费用、刷新书籍状态。可以用一个新类封装多个函数,客户只需调用新类提供的接口。

行为型模式例子

观察者模式

热门图书已被全部借出,读者可预约,当该书归还后发消息通知读者:预约者就是观察者,热门图书就是目标。
设计4个类:抽象目标类、抽象观察者、具体目标类、具体观察者。抽象目标类包含抽象观察者数组,同时有增删观察者的方法,通知观察者方法接口(虚函数);具体目标类继承抽象目标类,具体实现通知方法,此方法遍历并调用观察者的消息处理函数。

责任链模式

如果逾期还书,需要计算罚金、支付罚金、还书,新增需求:根据是否逾期调整读者信用,使用禁止再借书。
使用责任链模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值