《设计模式》软件设计6大原则

写在前面的话

为什么会有这样一篇文章呢?还得从几天之前一次写代码说起。

当时在做一个功能,主要是根据事件类型EventType进行不同的事件处理,大致流程如下

  • 提供一个接口,里面有个参数EventType,表示不同的请求类型
  • 需要根据类型做不同的处理,比如是新增,修改,删除

然后就提笔写代码,主要类图如下

  1. 设计一个处理的接口,处理方法为process()
  2. 有一个抽象的父类,里面实现process(),并且做成final的模板方法;并且有几个抽象的protected方法,由子类实现
  3. 有几个处理的子类,继承父类,实现抽象方法

一通操作下来,觉得没什么毛病啊,满足功能不说,又有扩展,又有设计模式在里面,而且其它人也这么干。。。

但是,注意这个"但是",突然想到,这样用继承到底好不好呢,又说不上来。

再一个就是想起一个朋友说的,支面试的时候,技术总监问他,知不知道迪米特法则,他当时没回答上来(好在跟总监以前认识,还是顺利入职了,所以认识人还是很重要,手动笑)。后来我还专门去查了下,就是关于抽象的。

基于以上2个原因,于是就又专门去看了下软件设计的6大原则

设计模式

以前也有过2篇跟设计模式有关的文章,传送门:模板方法适配器模式,有兴趣可以看一看,主要是参考Head First系列的《设计模式》。

这本书买了有好几年了,断断续续看过一些,一直不是很成体系。里面穿插介绍了软件设计的原则,以前都没引起重视,所以还是要多读书,多读几遍,同一本书,不同的人理解不一样,层次不一样的人理解也不一样

6大原则

设计模式六大原则(1):单一职责

定义:一个类应该只有一个引起变化的原因。

设计模式六大原则(2):里氏替换原则

定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。

定义2:所有引用基类的地方必须能透明地使用其子类的对象。

设计模式六大原则(3):依赖倒置原则

定义:要依赖抽象,不要依赖具体类

设计模式六大原则(4):接口隔离原则

定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 

设计模式六大原则(5):迪米特法则

定义:一个对象应该对其他对象保持最少的了解。又叫"最少知识"原则

设计模式六大原则(6):开闭原则

定义:类应该对扩展开放,对修改关闭

贴一个写的比较好的博客

算是引流把:软件设计模式六大原则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值