软件设计原则

用户头像
superman
关注
发布于: 2020 年 06 月 16 日

1:设计目的

做设计要完成两个目标,首先是实现需求,再次在满足需求基础上如何节约成本。第一个目标是不用讨论的,好的设计要满足第二个目标。第二个目标可理解为非业务考量的质量指标。结合软件特点,质量目标:

容易扩展,可重用,方便重用,简单,容易移植等。



2:设计原则

基于这个目标衍生软件设计的原则

1:开闭原则

软件应该对扩展开放,对修改关闭。

又新的需要需要满足时添加代码,而不是修改已有的代码。

2:依赖倒置原则

高层不依赖底层,大家都依赖抽象,抽象不依赖实现,实现依赖抽象

3:Liskon 替换原则

继承要符合这个原则,父类可以用子类替换。

设计类体系时要注意这个问题,使用者在使用父类的地方可以用子类替换,替换后要仍然符合使用者的预期。否则对使用者来说就是不可控的。这样的类体系就是失败的。

这里的符合使用者预期是从对象的行为上考虑的,面向对象就是行为的封装抽象。

比如马,小马,如果设计的马的行为是骑,小马继承马就是错误的,小马不能骑,不能替换父类。



更抽象的说子类提供的契约不能比父类的更严格。否则替换时就会出现不符合契约。



4:单一职责

一个类只有一个引起它变化的原因

5:接口隔离

不强迫用户依赖他不需要的方法。不把用户不需要的接口暴露给他。

 单一职责要求尽量拆开,如果不能进一步拆开,用接口隔离





发布于: 2020 年 06 月 16 日 阅读数: 41
用户头像

superman

关注

还未添加个人签名 2018.07.20 加入

还未添加个人简介

评论

发布
暂无评论
软件设计原则