zoukankan      html  css  js  c++  java
  • 设计模式简记-设计原则之DRY原则

    3.7 DRY原则

    3.7.1 DRY 原则(Don’t Repeat Yourself)

    • 三种代码重复的情况:实现逻辑重复、功能语义重复、代码执行重复。
    • 实现逻辑重复,但功能语义不重复的代码,并不违反 DRY 原则。
    • 实现逻辑不重复,但功能语义重复的代码,也算是违反 DRY 原则。
    • 除此之外,代码执行重复也算是违反 DRY 原则。

    3.7.2 代码复用性

    • 提高代码可复用性的一些方法

      • 减少代码耦合
      • 满足单一职责原则
      • 模块化
      • 业务与非业务逻辑分离
      • 通用代码下沉
      • 继承、多态、抽象、封装
      • 应用模板等设计模式
    • 复用意识也非常重要。在设计每个模块、类、函数的时候,要像设计一个外部 API 一样去思考它的复用性

    • Rule of Three

      第一次编写代码的时候,不考虑复用性;第二、三次遇到复用场景的时候,再进行重构使其复用

    • 辣么大:

      1、注释或者文档违反DRY
      2、数据对象违反DRY

      对于1,例如一个方法。写了好多的注释解释代码的执行逻辑,后续修改的这个方法的时候可能,忘记修改注释,造成对代码理解的困难。实际应用应该使用KISS原则,将方法写的见名知意,尽量容易阅读。注释不必过多。

      对于2、例如类

      class User{
        String id;
        Date registerDate;
        int age;
        int registedDays;
      }
      //其中 age可以由身份证号码算出来,而且每年都会递增。
      //注册会员多少天了,也可以算出来。所以是不是可以考虑,数据只存储id和注册时间。其余两个字段可以算出来。
      
  • 相关阅读:
    MySQL基准测试--innodb_buffer_pool_instances
    MySQL参数优化:back_log
    MySQL open_files_limit相关设置
    Django权限系统auth模块详解
    2.9 go mod 之本地仓库搭建
    my40_MySQL锁概述之意向锁
    my39_InnoDB锁机制之Gap Lock、Next-Key Lock、Record Lock解析
    2.8 GO 参数传递
    my38_MySQL事务知识点零记
    my37_MGR流控对数据库性能的影响以及MGR与主从的性能对比
  • 原文地址:https://www.cnblogs.com/wod-Y/p/12770463.html
Copyright © 2011-2022 走看看