三项措施做好门户网站建设,销售平台,机器人学做玩 网站,手机app下载大全第三章 自由扩展你的项目–Builder 模式
Builder 模式的定义
将一个复杂对象的构建与它的表示分离#xff0c;使得同样的构建过程可以创建不同的表示。
Builder 模式的使用场景 相同的方法#xff0c;不同的执行顺序#xff0c;产生不同的事件结果时 多个部件或零件使得同样的构建过程可以创建不同的表示。
Builder 模式的使用场景 相同的方法不同的执行顺序产生不同的事件结果时 多个部件或零件都可以装配到一个对象中但是产生的运行结果又不相同时 产品类非常复杂或者产品类中的调用顺序不同产生了不同的作用这个时候使用建造者模式非常合适 初始化一个对象特别复杂如参数多且很多参数都具有默认值时
Builder 模式的 UML 类图 Product产品的抽象类Builder抽象 Builder 类规范产品的组建一般是由子类实现具体的组建过程ConcreteBuilder具体的 Builder 类Director统一组装过程。
Builder 模式总结 Builder 模式在 Android 开发中也较为常用,通常作为配置类的构建器将配置的构建和表示分离开来同时也是将配置从目标类中隔离出来避免过多的 setter 方法。 Builder 模式比较常见的实现形式是通过调用链实现这样使得代码更简洁、易懂避免了目标类中被过多的接口“污染”。 优点 良好的封装性使用建造者模式可以使客户端不必知道产品内部组成的细节建造者独立容易扩展 缺点 会产生多余的 Builder 对象以及 Director 对象消耗内存
第四章 使程序运行更高效–原型模式
原型模式的定义
用原型实例指定创建对象的种类并通过复制这些原型创建新的对象
原型模式的使用场景 类初始化需要消耗非常多的资源这个资源包括数据、硬件资源等通过原型复制避免这些消耗 通过new 产生一个对象需要非常繁琐的数据准备或访问权限这时可以使用原型模式 一个对象需要提供给其他对象访问而且各个调用者可能都需要修改其值时可以考虑使用原型模式复制多个对象供调用者使用即保护性拷贝
原型模式的 UML 类图 Client客户端用户。Prototype抽象类或者接口声明具备 clone 能力ConcretePrototype具体的原型类。
原型模式小结 使用原型模式可以解决构建复杂对象的资源消耗问题能够在某些场景下提升创建对象的效率。 还有一个重要的用途就是保护性拷贝也就是某个对象对外可能是只读的,为了防止外部对这个只读对象修改通常可以通过返回一个对象拷贝的形式实现只读的限制。 优点 原型模式是在内存中二进制流的拷贝要比直接new一个对象性能好很多特别是要在一个循环体内产生大量的对象时原型模式可以更好地体现其优点。 缺点 这既是它的优点也是缺点直接在内存中拷贝构造函数是不会执行的在实际开发当中应该注意这个潜在的问题。优点就是减少了约束缺点也是减少了约束需要大家在实际应用时考虑。