当前位置: 首页 > news >正文

郑州外贸网站建设公司价格成都网站建设联系方式

郑州外贸网站建设公司价格,成都网站建设联系方式,软件设计培训,关于百度网站的优缺点最近#xff0c;我写了Autowired注释 #xff0c;它使我们可以编写更少的代码#xff0c;从而使我们的生活更轻松 。 但是#xff0c;使用它通常会使您的设计更加复杂。 尤其是当我们谈论在类的属性上使用它时。 它更容易违反 单一责任原则 。 这样可以更容易地注意到这一… 最近我写了Autowired注释 它使我们可以编写更少的代码从而使我们的生活更轻松 。 但是使用它通常会使您的设计更加复杂。 尤其是当我们谈论在类的属性上使用它时。 它更容易违反 单一责任原则 。 这样可以更容易地注意到这一点。 可以将Autowired与属性一起使用但是我认为构造函数的存在会在问题出现时以过多的依赖关系可视化该问题。 即使没有在我们这边加倍照顾。 不断增长的代码 让我们使用文章中有关构造方法和设置方法的已知示例但我们将对其进行一些修改。 因此曾经有一个事件必须处理。 首先我们必须从数据库中检索所有必需的信息然后我们就可以基于该信息触发适当的操作。 根据需求我们创建了以下代码片段 public class SomeHandler {Autowired private final Repository repository;Autowired private final Trigger trigger;public void handle(SomeEvent event) {// some code} } 但是改变是唯一可以确定的。 客户提出了新的要求我们不得不扩展功能。 客户希望存储所有信息然后才能采取适当的措施。 他们还希望在发生任何紧急事件时得到通知。 经过所有更改后我们最终得到如下结果 public class SomeHandler {Autowired private final Repository repository;Autowired private final Trigger trigger;Autowired private final SnapshotTaker snapshotTaker;Autowired private final Notifier notifier;public void handle(SomeEvent event) {// some code} } 从类的角度来看这是编写良好的代码吗 好吧我相信三到四个依赖关系绝对应该给我们理由开始考虑进行小型重新设计。 不幸的是这并不是我在单个类的代码中见过的最多的依赖项…… Autowired在哪里 好的但是Autowired必须做什么 解决该问题的方法是在需要时重构和重新设计代码对吗 我相信你们中的一些人会同意我的看法。 但是在做出任何更改决定之前我们必须找出问题所在。 好的再说一次– Autowired必须做什么 依赖项的数量是否有问题是显而易见的吗 好吧在字段上使用Autowired使它有点模糊。 当您查看上面的代码时似乎并不会感到很痛苦。 这些只是四行代码短行代码。 我们可能会争辩说任何优秀的开发人员都应该知道什么时候太多了但是为什么我们应该假设何时可以编写可以表达问题本身的代码呢 如果所有这些依赖项都是必需的我们可以使用构造函数来注入它们 public class SomeHandler {private final Repository repository;private final Trigger trigger;private final SnapshotTaker snapshotTaker;private final Notifier notifier;Autowiredpublic SomeHandler(Repository repository, Trigger trigger, SnapshotTaker snapshotTaker, Notifier notifier) {this.repository repository;this.trigger trigger;this.snapshotTaker snapshotTaker;this.notifier notifier;}public void handle(SomeEvent event) {// some code} } 现在代码“告诉”我们一些东西。 这个长的构造函数声明看起来并不好。 我们不必考虑四个是否太多。 我们看到了。 在示例中我们同时使用了类和方法的简称但是在实际应用中有时这些名称要更长一些以便尽可能地描述 Autowired public SomeHandler(EventRepository eventRepository, EventActionTrigger eventActionTrigger, EventSnapshotTaker eventSnapshotTaker, EmergencyIssueNotifier emergencyIssueNotifier) {this.repository eventRepository;this.trigger eventActionTrigger;this.snapshotTaker eventSnapshotTaker;this.notifier emergencyIssueNotifier; } 现在问题更明显了不是吗 并且添加另一个依赖项只会伤害我们的眼睛如果尚未发生 Autowired public SomeHandler(EventRepository eventRepository, EventActionTrigger eventActionTrigger, EventSnapshotTaker eventSnapshotTaker, EmergencyIssueNotifier emergencyIssueNotifier, SomeAnotherDependency someAnotherDependency) {this.eventRepository eventRepository;this.eventActionTrigger eventActionTrigger;this.eventSnapshotTaker eventSnapshotTaker;this.emergencyIssueNotifier emergencyIssueNotifier;this.someAnotherDependency someAnotherDependency; }我们需要更深入 但是现在不要停下来。 让我们看一下扩展类时的代码 public interface Handler {void handle(Event event); }public abstract class BasicEventHandler {Autowired private final EventRepository eventRepository;Autowired private final EventActionTrigger eventActionTrigger;// some code }public class SomeHandler extends BasicEventHandler implements Handler {Autowired private final EventSnapshotTaker eventSnapshotTaker;Autowired private final EmergencyIssueNotifier emergencyIssueNotifier;Autowired private final SomeAnotherDependency someAnotherDependency;public void handle(SomeEvent event) {// some code} } 在第一个示例中我们可以争论声明对象依赖项的代码行数是否足够大这使我们感到担忧。 当我们扩展一个类时在一个特定的类中这个数字可能很好。 但是此代码的问题甚至比前面的示例更大。 作者通常可以确定他们的解决方案是好的。 这就是我们作者对待正在创造的东西的方式。 但是这次即使是代码审阅者也可能不会注意到问题。 不幸的是并不是每个人都会看一下父类。 在检查代码时需要付出额外的努力。 即使没有签出分支我们仍然必须转到IDE并打开类。 也许不是很多但请相信我对于我们中的某些人来说太多了​​。 如果我们同意构造函数是类的必需部分那么就不会出现问题。 public class SomeHandler extends BasicEventHandler implements Handler {private final EventSnapshotTaker eventSnapshotTaker;private final EmergencyIssueNotifier emergencyIssueNotifier;private final SomeAnotherDependency someAnotherDependency;Autowiredpublic SomeHandler(EventRepository eventRepository, EventActionTrigger eventActionTrigger, EventSnapshotTaker eventSnapshotTaker, EmergencyIssueNotifier emergencyIssueNotifier, SomeAnotherDependency someAnotherDependency) {super(eventRepository, eventActionTrigger);this.eventSnapshotTaker eventSnapshotTaker;this.emergencyIssueNotifier emergencyIssueNotifier;this.someAnotherDependency someAnotherDependency;} public void handle(SomeEvent event) {// some code} }使其明显 我们可以想想有多少是太多的条款协议。 我们可以尝试遵循自己的规则。 但是总有人会挑战这一点。 谁将编写代码并试图证明所有内容都适合并且应该在一起但这还不是“太多”。 不要争论 让代码说明一切 翻译自: https://www.javacodegeeks.com/2016/03/autowired-all-the-things.html
http://www.pierceye.com/news/477423/

相关文章:

  • 简单的网站php开发教程用cms做的网站 的步骤
  • seo杭州seo快速排名利器
  • 谷歌不收录网站一个完整的短视频策划方案
  • 网页制作培训网站关于营销的最新的新闻
  • 免费查找资料的网站wordpress中文4.8
  • 凡科建设的网站如何中式建筑公司网站
  • 珠海网站建设品牌策划开发设计公司网站
  • 找别人做的网站怎样修改招聘app
  • 学校网站内容建设银行网站电脑上不去
  • 住建部工程建设标准网站上海室内设计事务所
  • 做外贸采购都是用什么网站网站重构方案
  • 企业网站做推广河南app开发
  • 海宁做网站的公司仿搜狐视频网站源码
  • 网站备案和不备案的上海制作网站公司网站
  • 网站建设专业介绍在线平面图设计
  • 临时工找工作网站做美缝手机网站不收录
  • 凡科建站怎么样网络推广网站培训班
  • 优惠券的网站怎么做的网站建设业务元提成
  • 网站开发项目组成员免费建网站的app
  • 怎样自己做公司网站驻马店logo设计公司
  • 知名网站制作公司排名徐州人才网最新招聘2023
  • 网站建设与网页设计难学吗做彩票的网站
  • 请问怎么做网站郑州小程序开发制作
  • 城乡建设网站职业查询系统小公司根本办不了icp许可证
  • 网站架构搭建搭建网站是什么专业
  • 互助网站建设电脑做网站端口映射
  • 电力行业做的好的招投标网站wordpress 自定义注册表单
  • 网站开发采集工具网站设计计划书的要求
  • 技术支持:佛山网站建设珠海网站制作服务
  • 公司网站建设方案ppt网站下载织梦模板