zoukankan      html  css  js  c++  java
  • 代码重构之单一职责原则在实际中使用

    1、单行代码职责单一

    private double GetSubtotalAmount(doube singlePrice,int productCount)
     {  
       return singlePrice*productCount;
     }

    上文中的return语句行代码职责不单一,将其改为:

    private double GetSubtotalAmount(doube singlePrice,int productCount)
     {
         double subtotalAmount=singlePrice*productCount;
     
         return subtotalAmount;
     }

    2、单个变量职责单一

    private string GetFirstName(string name)
            {
                name = name.Substring(0, 6);
                return name;
            }

    上文中的参数变量name被当作返回值使用,改为:

    private string GetFirstName(string name)
            {
             string firstName= name.Substring(0, 6);
     
             return firstName;
     }

    3、方法职责单一

    private void OnPageLoad()
            {
                LoadCountryData();
            }
      private void LoadCountryData()
            {
                //... Load Data
                //Set Item Index=0;
            }

    将上文中的注释部分//Set Item Index=0提取为一个方法:

    private void SetCountryListIndex(int countryIndex)
       {
        //Set Item Index=0;
        }

    这样在OnPageLoad里面改为

    private void OnPageLoad()
            {
                LoadCountryData();
               SetCountryListIndex(0);
            }

     4、类或接口或结构体职责单一,以类为例说明

    class UserInfor
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public string Address { get; set; }
     
            public void UpdateAddress(string newAddress)
            {
     
            }
        }

    可改为:

    class UserInfor
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public string Address { get; set; }
         }
     
      class UserBehavior
        {
            public void UpdateAddress(UserInfor user)
            {
     
            }
        }

    5、模块职责单一

    比如一个系统,有人员基本信息模块、考勤模块、工资管理模块,这三块之间相互独立又有关联,考勤和工资都要具体到每个人,各自分工职责很清楚,而且各模块职责单一。

  • 相关阅读:
    json格式
    UICollectionViewLayout继承UICollectionViewFlowLayout自定义布局
    iOS中如何生成二维码
    Xcode升级之后插件无法使用与不小心点击Skipbundle的解决办法
    如何上传本地代码到github
    Xcode实用快捷键以及Mac一些常用指令
    0925-0926 函数注意点
    0921控制结构注意点
    0920逻辑运算符,位运算,移位运算,三元运算符,短路性注意点
    0919表达式&运算符注意点
  • 原文地址:https://www.cnblogs.com/qingmuchuanqi48/p/13419999.html
Copyright © 2011-2022 走看看