软件设计原则

摘要:
在软件开发中,为了提高软件系统的可维护性、扩展性、复用性,程序员在日常开发的时候应当遵循一些软件设计原则,从而提高软件的开发效率和提升软件的生命力1、依赖倒转原则高层模块不应该依赖低层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象,简单的说就是要求对抽象进行编程,不要对实现进行编程2、接口隔离原则客户端不应该被迫依赖它不使用的方法,一个类对另一个类的依赖应该建立在最小的接口上3、

在软件开发中,为了提高软件系统的可维护性、扩展性、复用性,程序员在日常开发的时候应当遵循一些软件设计原则,从而提高软件的开发效率和提升软件的生命力

1、依赖倒转原则

高层模块不应该依赖低层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象,简单的说就是要求对抽象进行编程,不要对实现进行编程

2、接口隔离原则

客户端不应该被迫依赖它不使用的方法,一个类对另一个类的依赖应该建立在最小的接口上

3、开闭原则

程序在需要进行扩展的时候,不能去修改原有的代码,即对修改关闭,对扩展开放

4、里氏替换原则

子类可以扩展父类的功能,但是不能改变父类原有的功能,也就是子类继承父类时,你可以添加新的方法去完成新的功能,尽量不要去重写父类的方法

5、迪米特法则

如果两个软件实体无须直接通信,那么就不应该发生直接的相互调用,可以通过第三方转发该调用,其目的是为了降低类与类之前的耦合性,提高不同模块的相对独立性

6、合成复用原则

尽量优先使用组合、聚合等关联关系来实现功能,最后才考虑使用继承关系来实现

通常类的复用分成继承复用和合成复用两种

继承复用虽然有简单和易实现的有点,但是它也存在如下缺点

1、继承复用破坏了类的封装性,因为继承会将父类的实现细节暴露给子类,父类的内部对子类是透明可见的(通常称这种复用为白箱复用)

2、父类与子类的耦合度高,父类的任何改变都会导致子类的实现发生改变,这样就不利于类的维护和扩展

3、它限制了复用的灵活性,从父类继承而来的实现是静态的,在编译时已经定义,所以在运行时不可能发生变化

采用合成复用时可以将已有的对象纳入新对象中,使之成为新对象的一部分,新对象可以调用已有对象的功能,它有以下优点

1、它维持了类的封装性,因为成分对象的内部细节是新对象看不见的(通常称这种复用为黑箱复用)

2、对象的耦合度低,可以在类的成员位置声明抽象

3、复用的灵活度高,这种复用可以在运行时动态进行,新对象可以动态的引用与成分对象类型相同的对象

免责声明:文章转载自《软件设计原则》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇软件工程综合实践(二)wqs二分学习笔记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

APP设计尺寸规范大全,APP界面设计新手教程【官方版】(转)

正值25学堂一周年之际,同时站长和APP设计同仁们在群里(APP界面设计 UI设计交流群,APP界面设计⑥群APPUI设计③群58946771APP设计资源⑤群 386032923欢迎大家加入交流分享)交流和讨论的时候,发现很多新加入群的朋友们,问的最多的问题就是“主流手机界面设计尺寸做多大”?APP设计尺寸规范,知道多少呢?25学堂的老谭应广大群友的要求...

6.1 路由router

路由将信息由源地址传递到目的地的一种角色. 一、路由简单应用举个例子: let express=require('express'); let app=express(); app.use(express.static('public')); // GET /home 显示 网站首页 app.get('/home',function(req,res...

C#对config配置文件的管理

应用程序配置文件,对于asp.net是web.config,对于WINFORM程序是App.Config(ExeName.exe.config)。 配置文件,对于程序本身来说,就是基础和依据,其本质是一个xml文件,对于配置文件的操作,从.NET2.0开始,就非常方便了,提供了System[.Web].Configuration这个管理功能的NameSpa...

1.单一职责原则(Single Responsibility Principle)

1.定义   就一个类而言,应该仅有一个引起它变化的原因。 2.定义解读   这是六大原则中最简单的一种,通俗点说,就是不存在多个原因使得一个类发生变化,也就是一个类只负责一种职责的工作。 3.优点 类的复杂度降低,一个类只负责一个功能,其逻辑要比负责多项功能简单的多; 类的可读性增强,阅读起来轻松; 可维护性强,一个易读、简单的类自然也容易维护; 变更...

被hao123劫持主页最佳解决办法

作者:田无法链接:https://www.zhihu.com/question/39881858/answer/159582643来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 被hao123劫持主页最佳解决办法 方法一 下载360卫士,然后使用其主页劫持工具,可以恢复,但是还没结束,如果这是你高高兴兴地删除360,等第二次...

[转]技术宅我的网上抢火车票攻略

写在前面     写这篇文章的起因是今天在12306上买火车票时,被这牛逼的网站给震撼到了,靠,牛叉得让人无语的用户体验啊。就讲讲我是如何利用一个小工具做辅助,幸运地抢到了回家的卧铺票的。希望能给有需要的兄弟们做个参考。     回顾下我今天网上购票的全过程,总结起来有四个难关,第一是登陆,第二是预定,第三是提交订单,第四是支付。本文的目的主要是为了在第一...