首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SOLID之SRP

单一职责原则 SRP,single responsibility principle SRP是所有原则中最简单的之一,也是最难正确运用的之一,也是我们日常中最常用的一个 不管是编码,重构,甚至当下流行的微服务中...在很多团队的规范中,都会听到一条编码规范:一个方法不要超过x行代码 作为一群自命不凡的程序员,为什么在规范中却有如此一条格调不对称规范 主要问题就在于思维对SRP的缺失 ---- 微服务这个术语的一个问题是会将你的关注点错误地聚集在...如果一个类承担多于一个职责,那么引起它变化的原因就会有多个 在SRP中,职责定义为“变化的原因”,如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责 因此对于职责的定义需要结合具体业务

51020
您找到你想要的搜索结果了吗?
是的
没有找到

设计原则之单一职责原则(SRP)

但是从编码实现来说,已经违反了SRP。...类与接口 当我们将功能从函数的粒度重构之后,每个函数只负责了自己的部分,已经符合了 SRP 原则,但是从类的角度来看,登录类承担了太多的功能。...缺点 SRP 可以很好的将我们的功能、应用解耦,但是应该看到 SRP 存在的缺点,才可以更好的权衡自己的设计。 不明确。职责的含义没有明确界定,如何界定是门艺术。 无评判标准。界定出来的职责是好是坏?...职责划分到最后可能就是一个接口一个方法,看似符合 SRP,实则是 SRP 的滥用。 函数、接口、类爆炸。 知识比较支离。信息分布在各个类中,不如放在一起集中。...后记 要做一个符合SRP 原则的设计是很困难的,需要我们在实践中总结经验。对一个领域有了充分的了解,我们才能更加游刃有余的应用SRP 原则。同时不要滥用 SRP原则,编程是门艺术,设计更是一门艺术。

81350

软件设计原则之SRP:单一职责原则

本篇介绍软件设计原则之一SRP:单一职责原则。 SRP:单一职责原则 一个类应该只有一个发生变化的原因。 Why 为何把职责分离到单独的类中很重要呢?因为每一个职责都是变化的一个轴线。...如何定义职责 在SRP中,我们把职责定义为变化的原因。如果你能想到多于一个动机去改变一个类,那么这个类就多于一个的职责。有时,我们很难注意到这一点。我们习惯于以组的形式去考虑职责。...如果没有征兆,那么应用SRP或者任何其他原则都是不明智的。 分离耦合的职责 上面,我们把两个职责都耦合进了modem的实现类中。这不是所希望的,但是或许是必要的。...SRP是所有原则中最简单的原则之一,也是最难正确运用的原则之一。我们会自然地把职责结合在一起。软件设计真正要做的许多工作,就是发现职责并把那么职责相互分离。

30230

PHP面向对象五大原则之单一职责原则(SRP)详解

本文实例讲述了PHP面向对象五大原则之单一职责原则(SRP)。...为什么要遵守SRP呢?...不遵守SRP会影响对类的复用性。当只需要用该类的某一个职责时,由于它和其他的职责耦合在一起,也就很难分离出。 遵守SRP在实际代码开发中有没有什么应用?有的。...在设计模式方面,不仅以上这两种体现了SRP,还有别的(比如代理模式)也体现了SRPSRP不只是对类设计有意义,对以模块、子系统为单位的系统架构设计同样有意义。...模块、子系统也应该仅有一个引起它变化的原因,如MVC所倡导的各个层之间的相互分离就是SRP在系统总体设计中的应用。 SRP是最简单的原则之一,也是最难做好的原则之一。我们会很自然地将职责连接在一起。

35630

设计模式学习--面向对象的5条设计原则之单一职责原则--SRP

一、SRP简介(SRP--Single-Responsibility Principle): 就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。...二、举例说明: 违反SRP原则代码:  modem接口明显具有两个职责:连接管理和数据通讯; interface Modem {     public void dial(string pno);    ...void recv(); } interface Connection {     public void dial(string pno);     public void hangup(); } 三、SRP...优点: 消除耦合,减小因需求变化引起代码僵化性臭味 四、使用SRP注意点: 1、一个合理的类,应该仅有一个引起它变化的原因,即单一职责;  2、在没有变化征兆的情况下应用SRP或其他原则是不明智的; ...3、在需求实际发生变化时就应该应用SRP等原则来重构代码;  4、使用测试驱动开发会迫使我们在设计出现臭味之前分离不合理代码;  5、如果测试不能迫使职责分离,僵化性和脆弱性的臭味会变得很强烈,那就应该用

737100

PHP面向对象五大原则之单一职责原则(SRP)详解

本文实例讲述了PHP面向对象五大原则之单一职责原则(SRP)。...为什么要遵守SRP呢?...不遵守SRP会影响对类的复用性。当只需要用该类的某一个职责时,由于它和其他的职责耦合在一起,也就很难分离出。 遵守SRP在实际代码开发中有没有什么应用?有的。...在设计模式方面,不仅以上这两种体现了SRP,还有别的(比如代理模式)也体现了SRPSRP不只是对类设计有意义,对以模块、子系统为单位的系统架构设计同样有意义。...模块、子系统也应该仅有一个引起它变化的原因,如MVC所倡导的各个层之间的相互分离就是SRP在系统总体设计中的应用。 SRP是最简单的原则之一,也是最难做好的原则之一。我们会很自然地将职责连接在一起。

53320

Python scapy模块个人见解

scapy模块 from scapy.all import *    //来自scapy.all文件,导入所有函数 python交互模式中:ls(*)*=Ether、IP、ICMP、TCP、UDP、ARP...选择网卡为eth0 loop=1       循环发送 inter=1      每隔1秒发送  timeout=1    超时1秒就丢弃,实际时间看程序处理能力而定  3.发送并返回  二层:      srp...()   //发送包, 返回答复和没有答复的包的数量      srp1() //发送包, 返回只答复或者发送的包的详细信息| .参数,显示这个参数的返回数据  三层:      sr(  )  //发送包..., 返回答复和没有答复的包的数量      sr1( ) //发送包, 返回只答复或者发送的包的详细信息|.参数,显示这个参数的返回数据  如二层发收包:      srp1(pkt,timeout=1

1.1K20
领券