[设计模式](一):OOP设计原则

    最近在看《Head First Head First Design Pattern》,先看的中文版,看着看着有点疑惑,怎么感觉和我之前的认知不太一样?于是去翻了翻英文原版,才发现是翻译的问题。

    写这系列文章的时候,还参考了其他文章,将一并附在文后。

    由于是第一篇,先来写写设计模式的几大原则,了解这几个原则之后,对之后理解“为什么要这么做”有很大的帮助。


>设计模式的核心思想

    封装变化,降低耦合,是软件设计的核心思想,几乎所有的oop设计模式的根本目的就是为了做到这一点。同时,设计模式的目标还体现在,当需求发生变动时,只要修改最少乃至不修改源代码,只是做扩展即可完成目标,即开扩展闭修改原则(OCP)。


>六(七)大设计原则

1.单一职责原则(Single Responsibility Principle - SRP)

    这个原则的基础内容是:对于一个类,

  • 只有一个引起该类变化的原因;
  • 该类的职责是唯一的,且这个职责是唯一引起其他类变化的原因;

    PS:这个原则由于过于简单,常常被忽略在六大设计原则之外。实际上任何一个OOP程序员,哪怕对设计模式一无所知,写代码时也会默认地遵循这个原则。

    举个小例子,动物类与食物类之间的关系是:动物类的职责是吃掉食物,这个唯一的职责引起食物类中属性的消耗,也就是引起了食物类的变化;那么有人要问,动物(比如人类)不是还负责加工食物吗?那这违不违法SRP原则呢?

    我个人的理解是,不违反。SRP更多的是一种对“专注于做一件事”的极端说法,人类吃食物,可能去去皮、煮熟、添加佐料,但其并没有跨类(包括其子类)进行操作;但如果进行了“分享食物制作心得(菜谱)”的操作,就违背了SRP原则,因为此时该类已经不专注于“消耗食物”这一类事中了,而是开始于其他类进行交互(分享知识)。

    用数字代号来说ÿ

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值