重构数据-Replace Subclass with Fields以字段取代子类十五 1.以字段取代子类 1.1.使用场景 你的各个子类的唯一差别只在“返回常量数据”的函数身上。修改这些函数,使它们返…
重构数据-State/strategy 取代类型码十四 1.State/strategy 取代类型码 1.1.使用场景 你有一个类型码,它会影响类的行为,但你无法通过继承手法消除它。以状态对象取代类型…
重构数据-Replace Type Code with Subclasses以子类取代类型码十三 1.以子类取代类型码 1.1.使用场景 在类中有一个变量名称,它用来代表不同的类型,不同的类型改变了类…
重构数据-Replace Type Code with Class以类取代类型码十二 1.以类取代类型码 1.1.使用场景 1.使用场景 类之中有一个数值类型码,但它并不影响类的行为。以一个新的类替换…
重构数据-Replace Record with Data Class以数据类取代记录十一 1.以数据类取代记录 1.1.使用场景 当我们需要从外部(数据文件、数据库)读取数据,创建一个数据类以对象的…
重构数据-Encapsulate Collection封装集合十 1.封装集合 1.1.使用场景 有个函数返回一个集合。让这个函数返回该集合的一个只读副本,并在这个类中提供添加/移除集合元素的函数。 …
重构数据-Encapsulate Field封装值域九 1.封装值域 1.1.使用场景 将数据封装为私有,防止其他对象修改数据。 面向对象的首要原则之一就是封装(encapsulation),或者称为…
重构数据-Replace Magic Number with Symbolic Constant常量取代魔法数八 1.常量取代魔法数 1.1.使用场景 具有明确意义的数值替换为常量表达它的含义。 在计…
重构数据-Change Bidirectional Association to Unidirectional将双向关联改为单向七 1.将双向关联改为单向 1.1.使用场景 两个类之间有双向关联,但其…
重构数据-Change Unidirectional Association to Bidirectional将单向关联改为双向六 1.将单向关联改为双向 1.1.使用场景 在两个类之间需要互相访问对…