北风设计模式课程---单一职责原则(Single Responsibility Principle) 一.总结 一句话总结: 一个类应该有且只有一个变化的原因:单一职责原则(SRP:Single Responsibility Principle)可表述为 "一个类应该有且只有一个变化的原因(There should never be more than one reason for a class to change.)".单一职责原则是一个非常简单的原则,但通常也是最难做的正确的一个…
单一职责原则:就一个类而言,应该只有一个引起它变化的原因. 在iOS开发中,我们会很自然的给一个类添加各种各样的功能,比如随便写一个简单的应用程序,一般都会生成一个viewController类,于是我们将各种各样的代码,商业运算的算法.http请求的参数(params)封装.使用FMDB.coreData时的数据库访问语句都放在这个类里面,这就意味着,无论任何需求变化,都要来修改viewController这个类,这其实是很糟糕的,维护麻烦.复用不可能.缺乏灵活性. 也许上面说的略微夸张,因为…
各位看官大大们,晚上好.好久不见,我想死你们了... 先说说写这个系列文章的背景: 工作了这么久了,每天都忙着写业务,好久没有好好静下心来好好总结总结了.正好这段时间公司组织设计模式的分享分,所以我才有机会在这里和大家唠唠嗑. 也许因为自己是小白自学的吧,所以磕磕绊绊走了好多弯路.所以我深刻的理解到在自学的时候有一个前辈在前面引路是多么重要.可以让你少走很多弯路. 拥有更高的学习效率.特别是在一些问题上,苦思冥想很久都没有结果,白白浪费了很多时间,也许有人点拨一下就能茅塞顿开. 有这么一句话说的…
自己之前写过一些关于设计模式的博客,但是大部分都写得比较匆忙.现在正好趁年前有时间,笔者打算好好地整理一下自己这块知识结构.开篇的第一个原则就是设计原则里面最简单的一个原则--单一职责原则. 想必大家都听过并且常用这个原则进行一些项目的重构,因为这个原则太简单了,一句话概括就是:应该有且仅有一个原因引起类的变更.但是我们在实际的项目里面不能够生搬硬套,因为单一职责原则有个缺点就是可能会造成类对象的剧增,导致我们在用的时候就需要人为的组合对象.大家应该知道组合操作就会造成冗余.耦合,所以可以视具体…
单一职责原则是面向对象原则五大原则中最简单,也是最重要的一个原则, 他的字面定义如下: 单一职责原则(Single Responsibility Principle, SRP): 一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因. 从定义中可以看出在定义类的时候要将职责划分清楚, 不能让一个类负责干多个事情.换句话说就是一个类只有一个引起他变化的点.如果一个类负责干多个事情那么就会有多个引起他变化的原因.那么这个类就不稳定了,这个类就容易变化,因为…
概念: 就一个类而言应该只有一个因其他变化的原因. 流程: 问题由来:设类或接口类C负责两个不同不同的职责:职责T1,职责T2.当由于职责T1需求改变进而需要修改类C时,可能导致职责T2收到不可预知的影响. 解决方案:分别建立两个类C1.C2,分管职责T1,T2. 优缺点: 1.优点: (1).降低类的复杂度: (2). 易维护.易扩展.可读性强 2.缺点: 使类或接口的数目增加, 难以控制. 示例代码 下面代码就没有遵循单一职责模式,如Operation即完成了+又完成了-. package…
看的这本书叫<JavaScript设计模式与开发实践> 先规划一下看书的顺序,基础知识我已经大概的浏览了一遍了,没有留下笔记,以后有时间还会补上.本来打算顺着看的.但是我感觉我很难短时间内看完第二部分.我决定先浏览一遍第三部分-----设计原则和编程技巧.这里简单赘述一下.以后详细聊聊. 一.单一职责原则. 为什么会衍生出这一原则呢?就是为了应对产品.策划无休止的改,这也是程序员最头疼的问题了吧.----题外话 但是也充分的体会到了单一职责原则的方便之处了. 定义:单一职责原则(SRP)的职责…
定义 就一个类而言,应该仅有一个引起它变化的原因. 定义解读 这是六大原则中最简单的一种,通俗点说,就是不存在多个原因使得一个类发生变化,也就是一个类只负责一种职责的工作. 优点 类的复杂度降低,一个类只负责一个功能,其逻辑要比负责多项功能简单的多: 类的可读性增强,阅读起来轻松: 可维护性强,一个易读.简单的类自然也容易维护: 变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响. 问题提出 假设有一个类C,它负责两个不同的职责:职责P1和…
一.单一职责原则 不要存在多于一个导致类变更的原因.简单来说,就是一个Class/Interface/Method只负责一项职责. 这句话最为重要的就是这一段:一个Class/Interface/Method只负责一项职责. 我们先来举一个例子,我们在日常生活中都或多或少的听过LOL(英雄联盟)这个游戏,而这个游戏在各个直播平台都很火爆,那我们就以此为例: 某个游戏直播平台会将主播直播时的视频录制下来,等到主播下播后再上传到平台,这样就形成了录播.对于这两种视频观看模式,平台有着这样的规定:观看…
第8章 SRP:单一职责原则 一个类应该只有一个发生变化的原因. 8.1 定义职责 在SRP中我们把职责定义为变化的原因.如果你想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责.同时,我们很难注意到这一点.我们习惯于以组的形式去考虑职责.违反SRP的示例代码: public interface Modem { public void Dial(string pno); public void Hangup(); public void Send(char c); public ch…