重构——53以工厂函数取代构造函数(Replace Constructor with Factory Method)

简介: 以工厂函数取代构造函数(Replace Constructor with Factory Method):你希望在创建对象时不仅仅是做简单的构造动作;将构造函数替换为工厂函数

以工厂函数取代构造函数(Replace Constructor with Factory Method)

你希望在创建对象时不仅仅是做简单的构造动作;将构造函数替换为工厂函数

一、动机

在派生子类的时候以工厂函数取代类型码

二、做法

1、新建一个工厂函数,让它调用现有的构造函数

2、将调用构造函数的代码改为调用工厂函数

3、每次替换后,编译并测试

4、将构造函数声明为private

5、编译

目录
相关文章
|
设计模式 算法 Java
Object 类详解--代码块--单例设计模式
Object 类详解--代码块--单例设计模式
55 0
|
存储 索引 Python
Python函数是所谓的第一类对象(First-Class Object)是什么鬼?
之前写过一篇关于装饰器的文章,虽然写得还算不错,但是也有不少同学表示没看懂,我大概分析了其中的原因,主要问题是他们不理解函数,因为Python中的函数不同于其它语言。
153 0
|
Java 开发者
Class 类对象的三种实例化模式|学习笔记
快速学习 Class 类对象的三种实例化模式
174 0
Class 类对象的三种实例化模式|学习笔记
|
Python
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()
面向对象和面向过程,是两种编程思想. 编程思想是指对待同一个问题,解决问题的套路方式.面向过程: 注重的过程,实现的细节.亲力亲为.面向对象: 关注的是结果, 偷懒.类和对象,是面向对象中非常重要的两个概念object 是所有的类基类,即最初始的类class 类名(object): 类中的代码PEP8代码规范:类定义的前后,需要两个空行 创建的对象地址值都不一样如dog和dog1的地址就不一样,dog的地址为2378043254528dog1的地址为2378044849840 8.类内部操作属性 sel
256 1
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()
|
Java 程序员
Object类九大方法之getClass方法
Object类九大方法之getClass方法
149 0
Object类九大方法之getClass方法
|
Java
Object类九大方法之toString方法
Object类九大方法之toString方法
147 0
Object类九大方法之toString方法
|
Java 开发者
Class 类对象的三种实例化模式|学习笔记
快速学习 Class 类对象的三种实例化模式
423 0
 Class  类对象的三种实例化模式|学习笔记
【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 分析使用 MetaClass 进行方法注入前后 mateClass 类型变化 )
【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 分析使用 MetaClass 进行方法注入前后 mateClass 类型变化 )
153 0
|
JSON 缓存 Dart
【Dart 专题】Factory 工厂构造函数
简单了解 Dart 基础之各类构造函数!
2783 0
【Dart 专题】Factory 工厂构造函数
|
JavaScript 前端开发
Class:向传统类模式转变的构造函数
前言 JS基于原型的‘类’,一直被转行前端的码僚们大呼惊奇,但接近传统模式使用class关键字定义的出现,却使得一些前端同行深感遗憾而纷纷留言:“还我独特的JS”、“净搞些没实质的东西”、“自己没有类还非要往别家的类上靠”,甚至是“已转行”等等。
679 0