zoukankan      html  css  js  c++  java
  • 设计模式-单一职责原则

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

    创建型模式

    创建型模式对类进行抽象

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

    什么是单一的职责原则

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

    单一职责原则

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

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

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

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

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

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

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

    实现一个电话的接口

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

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

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

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

    单一原则适用于方法

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

    总结

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

    www.iming.info

    在无知的道路上缓步前行
  • 相关阅读:
    virtual box 改变已经创建的虚拟系统分配的硬盘
    linux android ndk
    ssm框架问题和Java
    mybatis spring sqlsession
    mybatis官网学习
    设计模式之适配器模式
    讲IOC非常好的一篇文章--初步弄懂DI
    aliyun服务器ubuntu系统+MySQL+SqlDeveloper
    stl 学习笔记
    深度图转点云图代码
  • 原文地址:https://www.cnblogs.com/melovemingming/p/9971425.html
Copyright © 2011-2022 走看看