【软件构造】软件构造知识点总结—第五章

第五章

一、面向可维护性的构造技术

SOLID原则:

1.SRP(单一责任原则):不应有多于1个的原因使得一个类发生变化;一个类,一个责任。

2.OCP((面向变化的)开放/封闭原则):

对扩展性的开放:模块的行为应是可扩展的,从而该模块可表现出新的行为以满足需求的变化。

对修改的封闭:模块自身的代码是不应被修改的;扩展模块行为的一般途径是修改模块的内部实现;如果一个模块不能被修改,那么它通常被认为是具有固定的行为。

关键:抽象方法。同时解决了(if/else/switch太多维护困难的问题)

3.LSP(Liskov替换原则):同第四章。

4.DIP(依赖转置原则):抽象的模块不应依赖于具体的模块;具体应依赖于抽象。

5.ISP(接口聚合原则):不能强迫客户端依赖于它们不需要的接口:只提供必需的接口。

二、面向可维护性的设计模式

1.工厂方法:

正常客户端:Product p = new ProductTwo();//通过new一个新的对象

工厂方法下:Product p = new ConcreteTwo().makeObject();//通过一个类中的方法创建对象。不暴露内部类的名字。

工厂方法:可以在ADT中也可以单独构建一个类:

Abstract Factory抽象工厂:把多个工厂方法组合到一起。

2. Proxy代理模式:隔离对复杂 对象的访问,降低难度/代价,定位在“访问/使用行为”

3.Observer模式:建立对象间一对多的情况。如偶像更新微博,所有的observer自动打印更新的行为。observer关注偶像,偶像的ADT自动将observer加入关注者名单。

4.Visitor模式:对特定类型的object的特定操作(visit),在运行时将二者动态绑定到一起,该操作可以灵活更改,无需更改被visit的类。

特点:在特定ADT上执行某种特定操作,但该操作不在ADT内部实现,而是delegate到独立的visitor对象,客户端可灵活扩展/改变visitor的操作算法,而不影响ADT。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值