1.简单工厂模式
适用场景:使用一个水果店创建水果,把创建水果的细节隐藏起来。
2. 工厂方法模式
适用场景:适用于一个画面只处理一种水果的情况
3. 抽象工厂模式
适用场景:适用于有包含多个部件的产品族情况。汽车的品种易更改,比如可以添加越野车,但其中的部件不易更改,比如如果想添加GPS,所有的现有类都要修改。
4. 单例模式
适用场景:当你想要使用一个全局变量来保存一个公有的对象时,请考虑该模式。
5 .建造模式
适用场景:获取一个有很多零件的产品。
建造模式与抽象工厂模式相似,都是用来创建包含多个部件的产品族,区别在于抽象工厂模式关注的是各个部件的创建,而建造模式不光要关注部件的创建,还要关注部件创建的流程,比如先要造好发动机,再造车身,因此,建造模式比抽象工厂模式要多出一个Director(工作人员)对象。而抽象工厂模式可以是建造模式的一部分。
工作人员操作汽车的创建流程,在组装汽车()方法里调用build发动机(),build离合器()等方法,然后Client调用get汽车()方法获得一个完整的汽车对象。
6. 原始模型模式
复制一个对象。Java语言直接支持原始模型模式。
- 浅复制:实现Cloneable接口后可以使用clone()方法对对象进行复制。
- 深复制:实现Serilization接口
- 有的对象或属性不能复制时,可以标识这个对象为transient,即不能序列化。