zoukankan      html  css  js  c++  java
  • 重构第23天 引用参数对象(Introduce Parameter Object)

    理解:有时候我们的一个方法,需要很多个参数,太多参数,不易阅读和理解,我们就可以把多个参数封装成一个对象。

    详解

    重构前代码:

    1 public class Registration
    2     {
    3         public void Create(decimal amount, Student student, IEnumerable<Course> courses, decimal credits)
    4         {
    5             // do work
    6         }
    7     }

    通常这种情形下创建一个用户传递参数的类是很有帮助的,这会使得代码更容易明白也更灵活,因为当你需要增加参数时,只需要给参数类添加一个属性即可。请注意只有当你发现方法的参数比较多时才应该应用该重构,如果方法的参数比较少,就没有必要应用此重构,因为该重构会增加系统中类的数量,同时也会加大维护负担。所以要看参数情况而定。
    重构后的代码如下:

     1 public class RegistrationContext
     2     {
     3         public decimal Amount { get; set; }
     4         public Student Student { get; set; }
     5         public IEnumerable<Course> Courses { get; set; }
     6         public decimal Credits { get; set; }
     7     }
     8 
     9     public class Registration
    10     {
    11         public void Create(RegistrationContext registrationContext)
    12         {
    13             // do work
    14         }
    15     }

    当一个方法的参数比较多的时候,不管是大中型项目还是小型项目,都会遇到这种场景,所以建议大家多使用这个重构。这种封装的思想在SOA 里面也经常运用到,封装输入Message,封装输出Message,消息来和消息去以及消息间的交互就构成了整个应用体系。

  • 相关阅读:
    如何避免重复的开发
    用BPM解决企业信息化的数据孤岛
    撸代码之前我们应该想些什么
    从开发的角度去分解项目需求
    MQTT 无法连接问题排查
    Linux下的OpenSSH,你知道多少?
    Linux下Rsyslog日志远程集中式管理
    如何在Linux下部署Samba服务?
    Linux环境下安装配置vsftpd服务(三种认证模式)
    Linux集群环境下NTP服务器时间同步
  • 原文地址:https://www.cnblogs.com/yplong/p/5374015.html
Copyright © 2011-2022 走看看