前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式-单一职责原则

设计模式-单一职责原则

原创
作者头像
mySoul
发布2018-11-16 20:40:01
8220
发布2018-11-16 20:40:01
举报
文章被收录于专栏:mySoulmySoul

设计模式-单一职责原则

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

创建型模式

创建型模式对类进行抽象

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

什么是单一的职责原则

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

其中创建型模式符合单一职责原则。

单一职责原则

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

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

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

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

该接口具有以上的问题。

用户的属性(是否为注册用户,vip用户等等),用户的行为(增加用户,删除用户)没有分开。

该接口一团糟!

应该用户的信息,用户的行为抽取为一个接口,然后一个接口继承这两个接口

更改的如下所示

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

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

实现一个电话的接口

这个接口包含两个职责,协议管理和数据传送。

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

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

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

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

单一原则适用于方法

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

总结

This is sometimes hard to see

这个有时候很难说!

对接口尽量做到单一原则,类的做到引起一个原因引起的变化。

www.iming.info

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建型模式
    • 什么是单一的职责原则
    • 单一职责原则
      • 实现一个电话的接口
        • 单一原则适用于方法
        • 总结
        相关产品与服务
        访问管理
        访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com