知识大全 java设计模式之Builder(解耦过程和部件)
Posted 部件
篇首语:金鞍玉勒寻芳客,未信我庐别有春。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java设计模式之Builder(解耦过程和部件)相关的知识,希望对你有一定的参考价值。
java设计模式之Builder(解耦过程和部件) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Builder模式定义: 将一个复杂对象的构建与它的表示分离 使得同样的构建过程可以创建不同的表示 Builder模式是一步一步创建一个复杂的对象 它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们 用户不知道内部的具体构建细节 Builder模式是非常类似抽象工厂模式 细微的区别大概只有在反复使用中才能体会到 为何使用? 是为了将构建复杂对象的过程和它的部件解耦 注意: 是解耦过程和部件 因为一个复杂的对象 不但有很多大量组成部分 如汽车 有很多部件:车轮 方向盘 发动机还有各种小零件等等 部件很多 但远不止这些 如何将这些部件装配成一辆汽车 这个装配过程也很复杂(需要很好的组装技术) Builder模式就是为了将部件和组装过程分开 如何使用? 首先假设一个复杂对象是由多个部件组成的 Builder模式是把复杂对象的创建和部件的创建分别开来 分别用Builder类和Director类来表示 首先 需要一个接口 它定义如何创建复杂对象的各个部件: public interface Builder //创建部件A 比如创建汽车车轮 void buildPartA(); //创建部件B 比如创建汽车方向盘 void buildPartB(); //创建部件C 比如创建汽车发动机 void buildPartC(); //返回最后组装成品结果 (返回最后装配好的汽车) //成品的组装过程不在这里进行 而是转移到下面的Director类中进行 //从而实现了解耦过程和部件 Product getResult(); 用Director构建最后的复杂对象 而在上面Builder接口中封装的是如何创建一个个部件(复杂对象是由这些部件组成的) 也就是说Director的内容是如何将部件最后组装成成品: public class Director private Builder builder; public Director( Builder builder ) this builder = builder; // 将部件partA partB partC最后组成复杂对象 //这里是将车轮 方向盘和发动机组装成汽车的过程 public void construct() builder buildPartA(); builder buildPartB(); builder buildPartC(); Builder的具体实现ConcreteBuilder: 通过具体完成接口Builder来构建或装配产品的部件; 定义并明确它所要创建的是什么具体东西; 提供一个可以重新获取产品的接口: public class ConcreteBuilder implements Builder Part partA partB partC; public void buildPartA() //这里是具体如何构建partA的代码 ; public void buildPartB() //这里是具体如何构建partB的代码 ; public void buildPartC() //这里是具体如何构建partB的代码 ; public Product getResult() //返回最后组装成品结果 ; 复杂对象:产品Product: public interface Product 复杂对象的部件: public interface Part 我们看看如何调用Builder模式: ConcreteBuilder builder = new ConcreteBuilder(); Director director = new Director( builder ); nstruct(); Product product = builder getResult(); Builder模式的应用 在Java实际使用中 我们经常用到 池 (Pool)的概念 当资源提供者无法提供足够的资源 并且这些资源需要被很多用户反复共享时 就需要使用池 池 实际是一段内存 当池中有一些复杂的资源的 断肢 (比如数据库的连接池 也许有时一个连接会中断) 如果循环再利用这些 断肢 将提高内存使用效率 提高池的性能 修改Builder模式中Director类使之能诊断 断肢 断在哪个部件上 再修复这个部件 cha138/Article/program/Java/gj/201311/27314相关参考
本文提出了一种界面设计中的架构模式界面组装器模式它致力于分解界面将界面和组装行为解耦将界面逻辑处理与领域逻辑处理解耦这样我们在开发GUI胖客户端界面应用时可以从众多的界面控制管理中解脱出来而专注于
Java设计模式之Strategy模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Strat
Java设计模式之Observer模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Obser
Java设计模式之Command模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Comman
Java设计模式之Adapter模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 通常客户类(
Java设计模式之计数代理模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 描述 计数代
Java设计模式之Decorator模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! JDK为
java设计模式之Mediator 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Mediato
java设计模式之Visitor 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Visitor定
Java设计模式之迭代器模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一引言 迭代这个名词对