软件设计重要原则

来源:互联网 发布:源码交易平台源码 编辑:程序博客网 时间:2024/06/05 17:34

单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。


如何一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这个耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。
典型的情况,就是界面与逻辑要进行分离。


开放-封闭原则:软件实体应该是可以扩展的,但是不可修改。两个特征:对于扩展是开放的(Open for extension), 对于更改是封闭的(Closed for modification)。

怎样的设计才能面对需求的改变可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新的版本呢,开放-封闭原则给了我们答案。

开放-封闭原则是面向对象设计的核心所在。遵循这个原则可以带类面向对象技术所声称的巨大好处,也就是可维护,可扩展,可复用,灵活性好。开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象,然后,对于应用程序中的每个部分都刻意的进行抽象同样不是一个好主意,拒绝不成熟的抽象和抽象本身一样重要。

依赖倒转原则

1 高层模块不应该依赖低层模块。两个都应该依赖抽象。

2 抽象不应该依赖细节。细节应该依赖抽象。


通俗的说:针对接口编程,不要对实现编程。 典型的例子就是,电脑的主板,CPU,内存等,它们都是针对接口来设计的,彼此不依赖,主板是高层模块,CPU,内存是低层模块,当CPU或者内存出了问题时,主板应该不受任何影响,不需要改变,这就是高层模块不应该依赖低层模块,两个都应该依赖抽象。


里氏代换原则(LSP):子类型必须能够完全替换掉他们的父类型。

通俗讲:一个软件实体如何使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。
只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。


正是由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就可以扩展。
里氏代换原则 是开发-封闭原则和依赖倒转原则的基础。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子爱玩不爱学怎么办 孩子爱玩不爱学习怎么办 孩子爱玩手机不爱学习怎么办 照四维宝宝太活泼了怎么办 胎宝宝太活泼了怎么办 7个月宝宝太活泼怎么办 我是个初中生不想上学怎么办 3岁宝宝不肯说话怎么办 两周宝宝不爱吃饭怎么办 小孩不喜欢吃水果蔬菜怎么办 孩子对学习不感兴趣怎么办 幼儿园老师不喜欢我孩子怎么办 孩子数学不主动思考问题怎么办 孩子做事慢磨蹭家长应该怎么办 孩子不写作业怎么办啊 对孩子在校被欺怎么办 二年级的孩子不爱学习怎么办 孩子不爱学习怎么办二年级 二年级孩子不爱写作业怎么办 孩子喜欢的朋友家长不喜欢怎么办? 孩子不喜欢上幼儿园家长怎么办 孩子不喜欢家长学佛怎么办呢? 学生家长讨厌老师老师该怎么办 孩子不爱去幼儿园总是哭怎么办 孩子学习一点都不主动怎么办 孩子怕老师不想上学怎么办 幼儿园孩子怕老师不想上学怎么办 孩子在幼儿园怕老师怎么办 幼儿园老师对孩子有歧视怎么办 儿子在幼儿园受到老师歧视怎么办 我把老师骂了怎么办 孩子讨厌老师骂老师怎么办 幼儿园老师讨厌一个孩子怎么办 幼儿园老师对孩子不好怎么办 高中分班讨厌班主任怎么办 把孩子老师惹了怎么办 高三班主任第一节课应该怎么办 高三孩子与班主任不和怎么办 孩子很害怕一件事怎么办 吼完孩子觉得很害怕怎么办 小朋友在幼儿园被欺负怎么办