设计模式几个原则

**

设计模式几个原则

**
单一职责原则:
一个类的功能单一(减法类只解决减法而不去解决加法),这个原则可能导致类有很多
开放——封闭原则:
开闭原则其实在大话设计模式中说得非常好,让人通俗易懂。
它举了一个例子,我觉得说得非常好。是加减乘除法的例子。
开始需求是做一个加法的操作。后来继续加入减法、乘法、除法。
开始我们想加法以后可能会做一个需求变更:加入其它的算法法则。所以我们要有一个预判性,这个预判性会导致我们项目以后的扩展性,也会导致如果需求发生变更,程序修改的难易程度。
所以,我们要做一个算法法则的操作类,加减乘除法都继承此操作接口。再加一个算法法则的客户端类类操作此算法。
其实我们几乎不可能做到真正的开发封闭,但是它是其余几个原则的目标。
依赖倒转原则
依赖倒置原则是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
实际上就是针对接口编程,下面这个人将的挺详细
[依赖倒转原则]https://www.cnblogs.com/xiaobai1226/p/8669232.html
里氏替换原则
这个最简单了在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象。例如:我喜欢动物,那我一定喜欢狗,因为狗是动物的子类;但是我喜欢狗,不能据此断定我喜欢动物,因为我并不喜欢老鼠,虽然它也是动物。

  例如有两个类,一个类为BaseClass,另一个是SubClass类,并且SubClass类是BaseClass类的子类,那么一个方法如果可以接受一个BaseClass类型的基类对象base的话,如:method1(base),那么它必然可以接受一个BaseClass类型的子类对象sub,method1(sub)能够正常运行。反过来的代换不成立,如一个方法method2接受BaseClass类型的子类对象sub为参数:method2(sub),那么一般而言不可以有method2(base),除非是重载方法。
  里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。

接口隔离:
这个其实我们不需要完全遵从,因为完全遵从代码量太多了
将臃肿的接口拆分为独立的几个接口也就是接口隔离原则。(通俗点:臃肿的接口就是方法多的接口)
建立单一接口;(扩展为类也是一种接口,一切皆接口)
   定义:
    a.客户端不应该依赖它不需要的接口;
    b.类之间依赖关系应该建立在最小的接口上;
 【接口的设计粒度越小,系统越灵活,但是灵活的同时结构复杂性提高,开发难度也会变大,维护性降低】

迪米特原则:又叫最少知道原则,尽量降低类与类之间的耦合;

一个对象应该对其他对象有最少的了解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值