single-responsibility-principle相关内容
我正在努力理解如何使单一职责原则与 OOP 一起工作. 如果我们要遵循原则进行发球,那么我们不是留下了许多类,其中许多类可能每个只有一个方法吗? 如果我们不完全遵循原则,那么原则的意义何在? 解决方案 我喜欢这样表述单一职责原则:“你写的每一件事——每一个模块、类、接口或方法,都应该有一项工作.它应该完成全部工作,并且只完成那项工作. 请注意,您编写的这些东西有些很大(模
..
维基百科这样描述单一责任原则: 单一职责原则规定每个对象都应该有一个单一的职责,并且这个职责应该完全由类封装.它的所有服务都应严格遵守该职责. MVC 中控制器的传统使用似乎导致程序员违反了这一原则.拿一个简单的留言簿控制器和视图.控制器可能有两种方法/操作:1) Index() 和 2) Submit().Index() 显示表单.Submit() 处理它.这两种方法是否代表两种不同
..
谁能给我举一个单一职责原则的例子?我试图理解在实践中,一个班级只有一个责任意味着什么,因为我担心我可能每天都违反这条规则. 解决方案 查看 可靠的描述. 除非你要求更具体的东西,否则很难提供更多帮助. 单一职责是一个类做一件特定的事情(职责)而不是试图做超出它应该做的更多的概念,这也被称为高内聚力. 类通常不会以低内聚开始,但通常在几个版本和不同的开发人员添加它们之后,您
..
所以在flux架构中,数据流如下: 查看 ->动作 ->调度员 ->店铺^
..
今天我工作的另一位工程师问我“这个单一职责是什么?"我的回答如下: “代码的每个范围,无论是 if 语句、函数、类还是模块,都应该有一个改变的理由". 但在我读到的任何地方,人们都在课堂上交谈.我告诉他 SRP 适用于他代码中的每个范围是错误的吗?. 解决方案 Bob Martin 曾多次尝试解决这个问题.问题是这里有两个不同的原则;非常不幸的是,其中一个没有真正的名字,这就是
..
根据当前的实践(至少在 WPF 和 Silverlight 中),我们会看到通过视图模型中的命令绑定绑定的视图,或者我们至少会看到在视图模型中处理的视图事件.这似乎违反了SRP,因为视图模型不仅仅对视图状态进行建模,但响应视图(用户).其他人询问了如何在不违反 SRP 的情况下构建视图模型 或询问 他们的实现是否这样做(最后一个是MVC中的控制器,但大致类似). 那么当前的做法是否违反了 S
..
参考此评论, 当一个类有很长的参数列表时,它可以是一个“代码闻到“你的班级试图做的太多,可能没有遵循单一责任原则.如果你的班级正在尝试做太多,考虑将您的代码重构为多个相互消耗的小类. 对于下面的这个控制器类我应该怎么做 - 它是“试图做太多事情"吗? 类控制器{公共 $template;公开 $translation;公共 $auth;公开$文章;公共 $nav;公共函数 __con
..
对于如何确定单个方法是否要完成一项职责,我感到很困惑,就像本书“清洁代码”中的以下代码一样 public moneycalculatePay(Employee e)抛出InvalidEmployeeType { switch(e.type){ case COMMISSIONED: return CalculationCommissionedPay(e); 案件HOURLY: 退还c
..
以我们为例: class AccountDAO { create(){..} read(){..} update(){..} delete() {..} } 有多少职责? 1或4? 解决方案 不应严格理解SRP.一个对象应该承担的责任很少,而不是“一个". 在这里AccountDAO仅负责帐户的持久性,因此它只负责一项.
..
当前,在对从另一个团队接手的内容进行一些代码审查时,对于将SRP及其与贫血或富域模型(由Martin Fowler定义)之间的关系存在疑问. 富域模型的概念是拥有一个智能对象,该对象不仅可以设置/获取其属性,还可以执行一些更复杂的业务逻辑.我想知道它如何适合SRP? 说,我的模型类具有一些可以暴露这些道具并对其属性进行简单计算的属性.下一个要求是可以将此对象数据存储在不受我控制的某个存储对象
..
我正在寻找有关在何处添加域实体的验证规则以及实施最佳做法的建议.我确实进行了搜索,但没有找到想要的东西,或者错过了. 我想知道验证属性在特定范围或长度内不为null的推荐方法是什么...我已经看到了使用IsValid()的几种方法以及有关强制执行的其他讨论.构造函数,这样该实体就永远不会处于无效状态,或者使用预处理和后处理,而其他使用FluentValidation api则可以看到不变性如
..
我想在我的项目域层(干净MVVM)中实现单一职责原则。 我大约200个不同的用例正在忙于管理。现在,我正在考虑创建一个UseCaseManager,它可以基于Input&输出对象。 我尝试了一种方法,但效果并不理想。我提到了一些示例代码,请帮助我如何将所有UseCases汇总到一个UseCaseManager。 UseCase1: 公共类ActualUseCase1扩展了A
..
我有一种算法可以为实体创建一个版本,然后将该版本保存到下面的2个实体中: 1)变体 2)类别 interface IEntityVersion { 字符串GetVersion() ; } public class EntityVersion:IEntityVersion { public string GetVersion() { 返回null; }
..
在设计具有层次关系的系统时,我经常遇到一个乞求多态行为的问题,但是有多种类型的工作可以从这种多态实现中受益. 例如,考虑使用抽象语法树来组织已解析的源以进行编译的编译器.多态组织逻辑很方便,因为您可能拥有不止一种类型的ValueProvider,每种类型的ValueProvider负责发出不同的代码以将值加载到操作堆栈上.问题在于,您可能还想对AST执行静态分析,在这种情况下,您希望对树进行
..
我目前正在学习Java,并且正在学习封装,我不确定以下哪个是更好的做法: 使用吸气剂将字段值从一个类返回到另一个类,然后通过另一个类中的方法将其打印出来. 从另一个类中调用一个类中的方法以打印该字段的值. 该值不被操作,仅通过System.out.println();显示; 任何建议将不胜感激:) 编辑:一个类(人)保存有关人的信息,例如姓名,年龄,体重等.另一类(人)具
..
假设我们正在设计一个执行CRUD(创建,读取,更新和删除)操作的UserServiceImpl类.在我看来,创建,读取,更新和删除是更改类的四个原因.该课程是否违反单一责任原则?如果违反了 那么我们应该有四个类,例如CreateUserServiceImpl,ReadUserServiceImpl, UpdateUserServiceImpl和DeleteUserServiceImpl.拥有很多东
..
我有一堆要通过将它们包装在一个字节数组中发送到消息队列的键和值.我将所有必须小于50K的键和值组成一个字节数组,然后发送到我们的消息传递队列. 数据包类: public final class Packet implements Closeable { private static final int MAX_SIZE = 50000; private static final
..
如果我将对象分解为“单一职责",是否有一个基本的想法,例如类似的对象应该一起生活还是单独生活,例如,如果我有 class Employee_DataProvider() : IEmployee_DataProvider { ... }; class Employee_Details() : IEmployee_Details { ... }; class Employee_Payroll()
..
在下面的视频中,作者采用了一个现有的课程并分配了Single责任原则.他参加了打印班,负责访问数据,格式化和打印报告.他将每个方法分解为自己的类,因此他创建了一个DataAccess类来处理数据访问,他创建了一个ReportFormatter类来处理Report的格式,并且他创建了一个ReportPrinter类来处理Report的打印.然后,将原始的Report类留给一个方法Print(),该方
..
高内聚力 是 单一责任原则"的代名词吗? 解决方案 这不是一回事. 您可以拥有一个高度凝聚力的课程,而不仅仅是一个职责.
..