赞
踩
相同的方法,不同的执行顺序,产生不同的事件结果时
多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时
产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用,这个时候使用建造者模式非常合适
初始化一个对象特别复杂,如参数多,且很多参数都具有默认值时

Product:产品的抽象类Builder:抽象 Builder 类,规范产品的组建,一般是由子类实现具体的组建过程ConcreteBuilder:具体的 Builder 类Director:统一组装过程。Builder 模式在 Android 开发中也较为常用,通常作为配置类的构建器将配置的构建和表示分离开来,同时也是将配置从目标类中隔离出来,避免过多的 setter 方法。
Builder 模式比较常见的实现形式是通过调用链实现,这样使得代码更简洁、易懂,避免了目标类中被过多的接口“污染”。
优点
缺点
类初始化需要消耗非常多的资源,这个资源包括数据、硬件资源等,通过原型复制避免这些消耗
通过new 产生一个对象需要非常繁琐的数据准备或访问权限,这时可以使用原型模式
一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式复制多个对象供调用者使用,即保护性拷贝

Client:客户端用户。Prototype:抽象类或者接口,声明具备 clone 能力ConcretePrototype:具体的原型类。使用原型模式可以解决构建复杂对象的资源消耗问题,能够在某些场景下提升创建对象的效率。
还有一个重要的用途就是保护性拷贝,也就是某个对象对外可能是只读的,为了防止外部对这个只读对象修改,通常可以通过返回一个对象拷贝的形式实现只读的限制。
优点
缺点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。