1.六大设计原则

1.1单一职责原则

案例1:将不区分类属性与行为的类,如IUserInfo接口拆分为BO,BIZ两个接口。需要使用BO,就将接口对象转换为具体的接口。

定义:单一职责原则(SRP,Single Responsibility Principe)的定义是:应该有且仅有一个原因引起类的变更。

案例2:电话拨号类的划分

单一职责原则的优势:类的复杂性降低了,可读性增加,可维护性提高,变更引起的风险降低

注意 单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否优良,但是“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异。

案例3:高粒度的“修改用户信息方法”!

编者按:之所以对此印象深刻是因为最近实训做的电商后台平台充斥着大量的诸如此类的代码,很感谢能够及时发现这样的问题

与现实的妥协

1.2里氏替换原则

OO中继承的优点:代码共享,减少了创建类的工作量;提高了代码的重用性;子类与父类有相似也有不同;提高了代码的可扩展性,比如版本升级产生的向下兼容;提高了产品与项目的开放性;

OO中继承的缺点:继承是侵入性的,只要继承必须拥有父类的属性与方法;继承也是子类的约束,降低了代码的灵活性;继承增加了父类子类的耦合性,当父类修改变量或方法时,要考虑子类的修改

里氏替换原则的定义:所有引用基类的地方必须能透明地使用其子类的对象

定义包含的四层规范

第一,子类必须完全实现父类的方法


第二,子类出现的地方并不一定可以被父类替换。

第三,子类方法可以放大参数范围

第四,子类方法可以缩小返回值范围

里氏替换原则的优点:增加程序的健壮性,版本升级时仍有很好的兼容性;即使增加了子类,原有类也可以继续运行;在实际项目中,每个子类对应不同的业务含义,使用父类作为参数,传递不同的子类完成不同的业务逻辑

你可能感兴趣的:(1.六大设计原则)