设计模式-6大基本原则

1、单一职责(业务逻辑上单一)

好处:

❑类的复杂性降低,实现什么职责都有清晰明确的定义;

❑可读性提高,复杂性降低,那当然可读性提高了;

❑可维护性提高,可读性提高,那当然更容易维护了;

❑变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无影响,这对系统的扩展性、维护性都有非常大的帮助。

2、里氏兑换原则

定义:

❑第一种定义,也是最正宗的定义:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。)

❑第二种定义:Functions that use pointers or references to baseclasses must be able to use objects of derived classes withoutknowing it.(所有引用基类的地方必须能透明地使用其子类的对象。)

第二个定义是最清晰明确的,通俗点讲,只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必就能适应。

3、依赖倒置原则

定义:

❑高层模块不应该依赖低层模块,两者都应该依赖其抽象;

❑抽象不应该依赖细节;

❑细节应该依赖抽象。

4、接口隔离原则(接口功能方法上尽量少)

定义:

客户端不应该依赖它不需要的接口。

类间的依赖关系应该建立在最小的接口上。

解释:

第一种定义:“客户端不应该依赖它不需要的接口”,那依赖什么?依赖它需要的接口,客户端需要什么接口就提供什么接口,把不需要的接口剔除掉,那就需要对接口进行细化,保证其纯洁性;再看第二种定义:“类间的依赖关系应该建立在最小的接口上”,它要求是最小的接口,也是要求接口细化,接口纯洁,与第一个定义如出一辙,只是一个事物的两种不同描述。

我们可以把这两个定义概括为一句话:建立单一接口,不要建立臃肿庞大的接口。再通俗一点讲:接口尽量细化,同时接口中的方法尽量少。

5、迪米特法则

定义:也称最少知识原则。 一个对象应该对其他对象有最少的了解。

解释:一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的这么多public方法,我就调用这么多,其他的我一概不关心。

6、开闭原则

定义:

软件实体应该对扩展开放,对修改关闭,其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。

软实体包括以下几个部分:

❑项目或软件产品中按照一定的逻辑规则划分的模块。

❑抽象和类。

❑方法。

开闭原则意义:

1.开闭原则对测试的影响

2.开闭原则可以提高复用性

3.开闭原则可以提高可维护性

4.面向对象开发的要求

如何实现开闭原则:

1、抽象的约束

接口是与其他模块交流的契约,修改契约就等于让其他模块修改。接口或抽象类一旦定义,就应该立即执行,不能有修改接口的思想,除非是彻底的大返工。

2、元数据(metadata)控制模块行为

元数据:用来描述环境和数据的数据,通俗地说就是配置参数,参数可以从文件中获得,也可以从数据库中获得。

3.制定项目章程

4.封装变化

对变化的封装包含两层含义:第一,将相同的变化封装到一个接口或抽象类中;第二,将不同的变化封装到不同的接口或抽象类中,不应该有两个不同的变化出现在同一个接口或抽象类中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
《24种设计模式介绍与6大设计原则.pdf》是一份介绍设计模式和设计原则的文档。设计模式是在软件设计中用于解决重复出现的问题的可复用解决方案。常见的设计模式包括单例模式、工厂模式、观察者模式等。这些模式能够提供可靠、灵活和可维护的代码结构。 这份文档中还介绍了6大设计原则,它们是在软件设计过程中应该遵循的基本准则。这些原则包括单一职责原则、开闭原则、里式替换原则、接口隔离原则、依赖倒置原则和迪米特法则。这些原则有助于设计出结构清晰、可扩展和易于维护的软件系统。 单一职责原则要求一个类只负责一项职责,这样可以降低类的复杂度,提高代码的可读性和可维护性。开闭原则指导我们应该对扩展开放,对修改关闭,这样可以轻松地添加新功能而不影响现有代码。里式替换原则要求子类能够替换父类,而不引起任何错误或异常。接口隔离原则要求客户端不应该依赖它不需要的接口,这样可以减少类之间的耦合性。依赖倒置原则指导我们应该依赖抽象而不是具体实现,这样可以降低类之间的依赖关系。迪米特法则要求一个对象应该尽可能少地与其他对象发生相互作用,以降低系统的耦合性。 通过学习设计模式和设计原则,我们可以更好地组织和设计软件代码,提高软件的可维护性、可扩展性和可读性。这些知识对于从事软件开发工作的人员来说是非常重要的,可以帮助他们设计出高质量的软件系统。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值