设计模式—原则

         经过这一段时间的学习,懂得了很多有关设计模式的知识,现在进行一下总结。那么就让我们先来学习基础知识——设计模式的六原则

1.单一职责原则

应该有且只有一个原因引起类的变化。

比如说MP3,我们仅仅只让它用来听音乐用、照相机只是让它来照相用,我举MP3也好照相机也好仅仅是为了让大家更好的理解什么是单一职责原则。在我们编程中,单一职责原则是说,一个类应该仅有一个引起它变化的原因,也就是让一个类实现的功能尽可能单一,如果我们在类的职责上分离上能尽可能的到位的话,我们的代码才能够做到易维护、易扩展、易复用。

 

2.里氏替换原则

只要父类能出现的地方,其子类就应该能出现。也就是用子类替换父类后,保证程序照样运行。

一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别,也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化,简单的说,子类型必须能够替换它们的父类型。

 

3.依赖倒原则

面向接口编程。

A:高层模块不应该依赖低层模块。两个都应该依赖抽象。  B:抽象不应该依赖细节,细节应该依赖于抽象。也就是说,要针对接口编程,不要对实现编程。

 

4.合成/聚合复用原则(CARP

尽量使用合成/聚合,尽量不要使用类继承

聚合关系(Aggregation聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享组合关系(Composition组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。接下来看一个例子


合成/聚合复用原则(CARP的好处是:

优先使用对象的合成/聚合将有利于你保持每个类被封装,并被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不可能增长为不可控制的庞然大物。


5.迪米特法则

也称为最少知识原则,其定义为:一个对象应当对其他对象有最少的了解。也就是一个类中不要有过多的其他类。

如果两个类不必彼此直接通信,那么这两个类就不应当发生直接打相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

强调的是在类的结构设计上,每一个类都应当尽量降低成员的访问权限。其根本思想强调了类之间的松耦合。类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。

 

6.开闭原则

一个软件实体(如类,模块,和函数)应该对扩展开放,对修改关闭。

开放-封闭原则表达的是两个意思,一个是说对于扩展是开放的,另一个是说对于更改是封闭的。扩展开放是说,我们所写的代码应该拥有扩展的功能,在编写代码时就要考虑将来扩展的可能性,因为需求随时都可能变更,所以我们要在原有代码的基础上,进行增加功能。而更改是封闭的是说,对代码进行需求变更是,不能对代码中已经存在的类、模块、函数等进行修改,需求变更是通过增加新代码而不是更改原有的代码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值