随笔分类 - 设计模式
摘要:MyBatis的ResultMapping和ResultMap "CSDN LoveLion" "复杂对象的组装与创建——建造者模式(一)" "Effective java 第3版中描述的Builder模式" "Java设计模式14:建造者模式" 2个类都使用了Builder来构建对象。 Resul
阅读全文
摘要:mozq 名词: 实体 引用 逻辑实体 可引用逻辑实体 不可引用逻辑实体 散弹式修改 逻辑存在形式:不可引用逻辑实体或者可引用逻辑实体 核心: 某个逻辑应该以什么形式存在呢?可引用逻辑实体(函数)还是不可引用逻辑实体(函数代码中)? 方案: 1.为多次使用的逻辑提供可引用的逻辑实体。 2.不是必须这
阅读全文
摘要:1 重构之重复代码: 2 3 1.(重复代码是)语义一致的逻辑 4 反例:语义一致的逻辑产生了多个实体 5 缺点:如果你为语义一致的逻辑产生了多个实体,那么当需要修改这个逻辑时,你必须保证同时修改所有的实体,并确保它们是一致的。否则,程序就会产生bug。无疑,这么做会额外增加很多的不必要的工作量。
阅读全文
摘要:5.Divergent Change发散式变化 描述:一个类被锚定了多个变化,当这些变化中的任意一个发生时,就必须对类进行修改。 解释:一个类最好只因一种变化而被修改 操作:你应该找出某特定原因而造成的所有变化,然后运用Extract Class将它们提炼到另一个类中。 6.Shotgun Surg
阅读全文
摘要:案例:吉他搜索Guitar Inventory GuitarSpec需求变化:增加吉他弦数特性原始程序需要的变化: 1.修改GuitarSpec,构造,成员,getter 2.修改Guitar,构造,因为改类直接接收吉他特性参数,构造吉对象。 3.修改Inventory,搜索方法,因为该类直接使用吉
阅读全文
摘要:重构之重复代码: 1.(重复代码是)语义一致的逻辑 反例:语义一致的逻辑产生了多个实体 缺点:如果你为语义一致的逻辑产生了多个实体,那么当需要修改这个逻辑时,你必须保证同时修改所有的实体,并确保它们是一致的。否则,程序就会产生bug。无疑,这么做会额外增加很多的不必要的工作量。 原则:语义一致的逻辑
阅读全文
摘要:package com.mozq.base; /** * 抽象工厂:提供一个创建一系列相关对象的接口,而不是指定它们具体的类。 * 1.抽象工厂 * 2.抽象产品 * 3.具体产品 * 4.具体工厂 * 5.客户端使用某系列产品 * 使用步骤: * 1.工厂后于产品。//工厂就是生产产品的,产品都没有设计好,无法定义工厂的功能。 * 2.具体后于抽象。 * ...
阅读全文

浙公网安备 33010602011771号