请选择 进入手机版 | 继续访问电脑版

马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

设计模式之六大原则

[复制链接]
查看1910 | 回复0 | 2019-9-26 09:17:50 | 显示全部楼层 |阅读模式

设计模式之六大原则

参考文章:https://www.cnblogs.com/lvjy-net/p/10429873.html

一、单一职责原则(Single Responsibility Principle,SRP)

定义:一个类只负责一个功能范畴中的相应职责(就一个类而言,应该只有一个引起它变化的缘故原由)

该职责要求在面向对象设计时一个类只须要负责一个范畴的功能,避免多个功能范畴大概说多个实例都对应同一个类,这样低落代码之间的耦合度,提高内聚水平。

二、开闭原则(Open-Closed Principle,OCP)

定义:一个软件实体应当对扩展开放,对修改关闭。即软件实体应只管在不修改原有代码的环境下举行扩展。

字面明白很清楚,意思就是设计对象时要思量到扩展性,将来应当只答应对现有代码举行扩展,不能随意修改现有代码,这样也可以避免更多的麻烦和bug出现。

在开闭原则中,我们可以使用抽象化设计来实现该类原则。可以使用接口、抽象类等等方式定义抽象层,再根据差别需求来写具体的实现类,以此到达高扩展性的要求。

三、里氏替换原则(Liskov Substitution Principle,LSP)

定义:全部引用基类(父类)的地方必须能透明地使用其子类的对象。

该原则意思是父类对象可以使用子类对象大概说可以使用子类对象来代替父类的对象,但是不能用父类的对象来代替子类的对象。

可以明白为包罗的关系:我喜好打球,那么我一定喜好打篮球、打羽毛球、打乒乓球,当我打篮球的时间我就可以说我在打球;反之,我说我喜好打篮球,并不代表我喜好打球,因为球并不但有篮球,当我说我在打球的时间,你不能说我就在打篮球是吧?

四、依赖倒置原则(Dependency Inversion Principle,DIP)

定义:抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口变成,而不是针对实现编程。
依赖注入(DependencyInjection,DI):指当一个对象要与其他对象发生依赖关系时,通过抽象来注入所依赖的对象。常见注入方式有:构造注入,设值注入(Setter)和接口注入。

五、接口隔离原则(Interface Segregation Principle,ISP)

定义:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不须要的接口。

该原则明白起来也相对简朴,当我们用接口来举行设计时,只管将接口的功能独立,避免一个接口被大量依赖。但是,也不能将接口分得太细,这样也倒霉于后期的维护,以是这之间的度是设计者须要体会的关键。

六、迪米特法则(Law of Demeter,LoD)

定义:一个软件实体应当尽可能少地与其他实体发生相互作用。

在对象设计时每个类要避免过于依赖其他的类,要只管低落其入口的访问权限。实现对象只和与本身的相干对象联系在一起。

总结:

团体来说,六大设计原则都围绕着一个点,就是低落代码之间的耦合度,也就是低落他们之间的关联水平,尽可能提高步伐的后期扩展性。开闭原则、里氏替换原则、依赖倒转原则一样平常会团结起来使用,可以说开闭原则是最终目标、里氏替换原则是根本、依赖倒转原则是实现手段。







来源:https://www.cnblogs.com/codexiaoyi/archive/2019/09/25/11582526.html
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则