天天学设计模式4-设计原则

设计模式有六大原则,这六大原则分别是:单一职责原则,里氏替换原则,依赖倒置,借口隔离,迪米特法则,开闭原则。

单一职责定义如其名字:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。

这个原则粗看之下很简单,在很多书中也轻描淡写地一笔带过,但在我翻阅了相关资料过后发现,其实这个原则的难点在于修改已经写好的类时候。在编写程序的一开始,大部分人都会遵守单一职责原则,但是,当发生比如:需求增加了,或者我们一开始没想清楚这个类到底要实现多少功能的时候,我们便需要添加功能。这时候我们就要面临到底是在这个类之上增加功能呢,还是再新建一个类呢?

很多时候由于工作上的繁忙,我们常常就会直接在原有的基础之上添加功能了,比如(基本上所有关于单一职责原则的帖子都会提到的)

class 动物

{void breath()

{通过空气呼吸;}

}

但,后面我们发现鱼是通过水呼吸,那么我们是新创建一个类class 海洋动物,还是修改breath()?最好是新创建一个类,但是如果实在是一个简单功能,而且原本的类并不复杂,那么可以在原有的的类上进行改动,不过最好遵循函数(或者说方法)的单一职责原则,最好改成

class 动物

{void breathAir(){通过空气呼吸;}

void breathWater(){通过水呼吸;}

}

最糟糕最糟糕的情况则是改成

class 动物

{bool 是否是水生动物

void breath(){

if (是否是水生动物)

{通过水呼吸;}

else

{通过空气呼吸;]

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值