敏捷开发的原则

一:单一职责原则(The Single Responsibility Principal)SRP

就是说尽量的单一化类的功能,不要使类具有多个功能。

如果类具有多个功能时,任意一个功能的修改都需要改写这个类,也就会影响其他的类,而这些类根本没有使用修改的这个功能。如果单一化功能,这种情况就可以避免。

例如对一个足球联赛,可以编写两个类,一个类记录球队的比赛信息,另一个类来计算球队的排名。

如果原先赢得两分,平一分,输零分,这时通过排名类计算了一个排名。现在变成赢三分,我们只需要更改计算排名的类就可以得到新的排名,而不需要修改记录球队比赛信息的类。

 

二:开放-封闭原则(The Open-Close Principal) OCP

就是指如果有新需求,我们可以非常方便的添加到已有的程序中,但是添加时不能修改原先存在的功能代码。

例如对于联赛,可以有足球联赛和篮球联赛,它们的记分方法都不相同。我们可以有两种方法来记分。

一种是在足球联赛和篮球联赛中设置一个标志位来说明联赛类型。然后在记分类中判断联赛类型,然后进行不同的计算。

一种是创建两个计算分数的类,一个计算足球联赛,一个计算篮球联赛。

对于第一种情况,如果现在有一个排球联赛需要计算排名,我们需要修改记分的方法类。不符合OCP原则。

但是对于第二种情况,如果需要计算排球联赛的分数,我们只需要添加一个新的记分类便可以。符合OCP原则。

 

 

三:Liskov替换原则(The Liskov Substitution Principal)LSP

是指如果类B继承于类A,如果类C调用类A能够产生期望的输出,那么调用类B也应当能产生期望的输出。

例如对于足球联赛来说,有降级的队伍,杯赛也是一种足球联赛,如果杯赛继承了足球联赛,就应当也能有降级的队伍。但实际上,杯赛是没有降级队伍之说的。那么另一个类调用联赛类能产生期望输出,但是调用杯赛类就不能产生期望输出了。违背了LSP原则。

 

 

四:依赖倒置原则(The Dependency Inversion Principal)DIP

指对于高层的类和对象来说不应当依赖于底层的对象,两者都应当依赖于抽象的对象,并且细节都应当依赖于抽象的对象。

例如一个遥控器类,如果它包含具体的电视机类,那么这个遥控器只能控制电视机,不能控制空调什么的。不符合DIP原则。

但是我们把遥控器中控制部分抽象出来,电视机和空调都实现了这个控制器,遥控器也调用这个控制功能,那么遥控器就能控制电视机和空调了,这样就符合了DIP原则。

 

 

五:接口隔离原则(The Interface Segregation Interface)ISP

其实这是单一职责原则的扩展。就是一个类或接口只包含特定一组相关的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值