软件构造感想7

面向复用的设计模式

结构模式

适配器模式

简单来说,适配器模式就是将方法不匹配的接口转换成匹配的
比如point方法是找到图上对应坐标的点,
我们需要的是
point(int x,int y)
而有个接口提供一个相同功能的方法是
point(int y,int x)
这时,当我们需要使用委托时就需要在中间加设一个接口,在其中再将参数调换位置后调用接口的point(int y,int x)方法,加设的接口就相当于中转站

装饰器模式

构造一个装饰类,实现一个接口,而该装饰类的实现由接口中的另一个类实现,也就是说这个装饰类相当于这个“另一个类”的copy,而需要拓展的功能的类继承这个装饰类,这就是所谓的装饰模式,这样使得几个类之间有一定的复用性,但是也存在缺点,就是这能使用接口中定义的方法,如果要能够使用全部方法就要在接口中定义所有方法,也就违反了lsp原则

外观模式

简而言之门面模式就是把几个接口捏合成一个接口,通过传进这一个接口中的方法中参数的不同选择不同的接口进行实现

行为模式

策略模式

简单说,就拿排序来说,策略模式就是构造一个排序接口,这个接口由类似于快速排序、冒泡排序、希尔排序等排序方法等方法实现,使用时使用该接口的对象,创建对应具体类的实例

模板模式

就是把几个类复用的方法通过一个父类组合起来,在父类中把能复用的方法实现,可以加上final,让子类不能继承,而需要扩展的功能由父类的抽象方法定义,子类实现

迭代器模式

简单说就是为adt提供一种遍历方式

可维护性的度量与构造原则

可维护性指标

可维护性—“修改软件系统或组件以更正错误,提高性能或其他属性或适应变化的环境的简便性”。 ?
可扩展性-软件设计/实现考虑了未来的增长,并被视为系统扩展能力和实施扩展所需的工作水平的系统度量。 ?
灵活性-软件可以根据用户要求,外部技术和 会环境等轻松更改的能力。?
适应性-交互式系统(自适应系统)的能力,可以使其行为适应单个用户 基于获取的有关其用户和环境的信息。
可管理性-管理软件系统的效率和便捷性,以保持系统的运行,安全和平稳运行。
可支持性-基于包括质量文档,诊断信息以及知识渊博的可用技术人员在内的资源,在部署后如何保持软件的有效运行。

模块化设计和模块化原理

评估模块化的五个标准

可分解性、可组合性、可理解性、可持续性(发生变化时受影响范围最小)、出现异常之后的保护

模块化设计的五个规则

直接映射、尽可能少的接口、尽可能小的接口、显式接口、信息隐藏

SOLID设计原则

单一责任原则:一个类只有一个责任
开放-封闭原则:模块的行为应是可扩展的,但模块自身的代码是不应被修改的
Liskov替换原则:子类型必须能够替换其基类型;派生类必须能够通过其基类的接口使用,客户端无需了解二者之间的差异)
接口隔离原则:只提供必需的接口
依赖转置原则: 具体应依赖于抽象,抽象的模块不应依赖于具体的模块)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月3日
下一篇 2020年5月3日

相关推荐