Java设计模式——建造者模式、原型模式
一、建造者模式的本质
——分离了对象子组件的单独构造(由Builder来负责)和装配(由Director负责)。从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况下使用。
——由于实现了构建和装配的解耦。不同的构造器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象,也可以实现了构建算法、装配算法的解耦,实现了更好的复用。
二、建造者模式在开发中的运用场景
——StringBuilder类的append方法
——SQL中的PrepareStatement
——JDBC中,DomBuilder、SAXBuilder
三、原型模式(prototype)
——通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。
——相当于Java中的克隆技术,以某个对象为原型,复制出新的对象,显然,新的对象具备原型对象的特点。
——优势:效率高(直接克隆,避免了重新执行构造过程的步骤)。
——克隆类似于new,但是不同于new,new创建新的对象属性采用的是默认值,克隆出的对象的属性值完全和原型对象相同,并且克隆出新对象不会影响原型对象,然后再修改克隆对象的值。
四、原型模式的实现
——Cloneable接口和clone方法
——Prototype模式实现起来最困难的地方就是内存复制操作,当然在Java中提供了clone()方法替我们做了绝大部分事情。