设计模式-单一职责原则

简介:

设计模式-单一职责原则
单一职责原则使用的是创建型模式

创建型模式

创建型模式对类进行抽象

重点,创建型模式能够将对象的创建和和对象的使用分离。即使用创建型模式能够使得对象的创建,对象的使用分离。重点在于分离。

什么是单一的职责原则

设计模式有六大基本原则,单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则,开闭原则。
其中创建型模式符合单一职责原则。

单一职责原则

即SRP 用户角色管理等模块,使用的是RBAC模型

RBAC 一种以角色为储存的控制,使用RBAC 不赋予权限,赋予角色,例如windows的用户管理,使用的是赋予角色,对用户进行管理,这种方式为RBAC,目的在于使得用户和权限分离。

设计一个用户管理,依据单一职责模型,设计以下的结构。

该结构定义一些管理用户的,增加用户的一些内容,写入一个接口中,然后进行实现。

该接口具有以上的问题。
用户的属性(是否为注册用户,vip用户等等),用户的行为(增加用户,删除用户)没有分开。
该接口一团糟!
应该用户的信息,用户的行为抽取为一个接口,然后一个接口继承这两个接口
更改的如下所示

why? 为什么要分离,因为单一职责原则,当使用单一职责原则的时候,每个接口,每个类需要承担单一的职责,不应该承担过多的原则,易于维护

核心 ,一个接口只有一个原则!一个接口只能负责一件事情,只有一个原因能引起其变化

实现一个电话的接口

这个接口包含两个职责,协议管理和数据传送。
dial和chat为通话,该通话和拨打电话,使用了同时都和协议有关系,如果要更改协议,那么这两个接口的内容都需要进行更改。由于一个接口存在两个职责,所以该接口需要划分为两个接口

此时存在一个关联关系,拨打电话和协议的实现,两者之间存在关联关系,此关联关系为静态关联

这个类图完全符合单一职责的原则。每个状态只决定一件事情。每个状态的更改只改变一件事情。

好处 复杂度降低 可读性提高 可维护性增强 变更引起的风险降低(因为变更的时候如果每个接口只负责一个单一的原则,那么一个接口的修改对其他没有影响,这样降低了整体的复杂度)

单一原则适用于方法

刀就是刀,叉就是叉,1就是1,0就是0.没有中间态,每个方法也同样的适用于单一原则,每个方法也同样的只承担一个内容。一个作用。

总结

This is sometimes hard to see
这个有时候很难说!
对接口尽量做到单一原则,类的做到引起一个原因引起的变化。

www.iming.info

目录
相关文章
|
4月前
|
设计模式 存储 NoSQL
【设计模式】软件设计原则-单一职责原则
【1月更文挑战第12天】【设计模式】软件设计原则-单一职责原则
|
7月前
|
设计模式 Java
Java设计模式七大原则-单一职责原则
Java设计模式七大原则-单一职责原则
34 0
|
11月前
|
设计模式 XML JSON
【Java设计模式 经典设计原则】一 SOLID-SRP单一职责原则
【Java设计模式 经典设计原则】一 SOLID-SRP单一职责原则
67 0
|
设计模式
设计模式(1)--单一职责原则
设计模式(1)--单一职责原则
设计模式(1)--单一职责原则
|
设计模式 数据安全/隐私保护
设计模式六大原则(一)----单一职责原则(下)
设计模式六大原则(一)----单一职责原则(下)
|
设计模式
设计模式六大原则(一)----单一职责原则(上)
设计模式六大原则(一)----单一职责原则(上)
|
设计模式
设计模式七大原则——单一职责原则
设计模式七大原则——单一职责原则
设计模式七大原则——单一职责原则
|
设计模式 数据安全/隐私保护
设计模式六大原则(一)----单一职责原则
设计模式六大原则(一)----单一职责原则
133 0
设计模式六大原则(一)----单一职责原则
|
设计模式
大话设计模式--第三章 单一职责原则
其实这里主要讲了写代码的一个原则,那就是本文的标题, 单一职责原则。
77 0
|
设计模式
设计模式(三)之单一职责原则
单一职责原则:官方给的说法是,就一个类而言,应该仅有一个因其他变化的原因。 说白了就是,一个类只负责一项职责。 最简单也是最难的原则。难处在于对职责进行划分。单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否优良,但是“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异。 软件设计真正要做的内容,就是发现职责并把那些职责互相分离。单一职责原则可以使类的复杂度降低,实现什么职责都有清晰明确的定义;类的可读性提高,复杂度降低;可读性提高了,代码就更容易维护;变更(需求是肯定会变)引起的风险(包括测试的难度,以及需要测试的范围)降低。
95 0
设计模式(三)之单一职责原则