大话设计模式之设计模式的六大原则

1,单一职责原则
就一个类而言,应该仅有一个引起它变化的原因。
如果一个类承担过多的职责,就等于把这些类耦合在一起,一个职责的变化可能会消弱或抑制这个类完成其它职责的能力。这种耦合会导致设计的脆弱,当发生变化时,设计会遭到意想不到的破坏。
软件设计真正要做的的许多内容,就是发现职责并把这些指责相互分离,其实要是判断是否应该分离出类,也不难,那就是如果你能够想到多于一个的动机去改变这个类,那么这个类就具有多余一个的职责,就应该考虑类的职责分离。

遵循单一职责原的优点有:
可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;
提高类的可读性,提高系统的可维护性;
变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。


2,开放-封闭原则
就是软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。
原则的两个特征:一是说对于扩展是开放的,另一个是说对于更改是封闭的。
面对需求,对程序的改动是通过增加新的代码进行的,而不是更改现有代码。这就是开放封闭原则的精神所在
开放封闭原则是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护、可扩展、可复用、灵活性好。


3,依赖倒转原则
就是抽象不应该依赖细节,细节应该依赖抽象,说白了,就是针对接口编程,而不是对实现编程。
高层模块不应该依赖底层模块。两个都应该依赖抽象。
依赖倒转其实可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时都是如何针对抽象编程而不是细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之那就是过程化的设计了。


4,里氏代换原则
一个软件实体如果使用的是一个父类的话,那么一定适用其子类,而且它察觉不出子类对象和父类对象的区别。也就是说,在软件里面,把父类都替换成他的子类,程序的行为没有变化。也就是说子类型必须能够替代他们父类型。
通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。


5,迪米特法则
如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果一个类需要调用另一个类的某个方法的话,可以通过第三者转发这个调用。
迪米特法则其根本思想,是强调了类之间的松耦合。
我们在程序设计的时候,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。


6,接口隔离原则
客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。也就是说,我们要为各个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。
运用接口隔离原则,一定要适度,接口设计的过大或过小都不好。设计接口的时候,只有多花些时间去思考和筹划,才能准确地实践这一原则。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值