1.六大设计原则

1.1单一职责原则

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

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

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

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

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

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

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

与现实的妥协

1.2里氏替换原则

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

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

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

定义包含的四层规范

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


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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 3,790评论 0 14
  • 单一职责原则 (SRP) 全称 SRP , Single Responsibility Principle 单一职...
    米莉_L阅读 1,796评论 2 5
  • 转载自 设计模式六大原则[http://www.uml.org.cn/sjms/201211023.asp#3] ...
    厨子阅读 1,119评论 2 5
  • 设计模式六大原则 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类...
    viva158阅读 783评论 0 1
  • 李湘 总裁李湘,世界女强 多才多艺,名流上榜 身价上亿,豪宅上档 不次冰冰,超过女皇 名牌缠身,月费女王 风生水起...
    旖旎i阅读 716评论 2 17