Java设计模式(二)

Builder

定义

一步一步从简单对象建立起复杂对象

何处使用和益处

仅仅明确类型和内容就可以做出一个复杂对象。建成的对象与创建它的细节分开。

将创建一个复杂对象的过程和该对象所包含的组件做接耦化。

将创建和表达的代码分离。

程序员对创建的过程有更好的控制。

相关模式包括:

抽象工厂模式,它主要是集中在工厂模式的层面,也许简单,也许复杂。而一个Builder模式主要用来建立基于简单对象的复杂对象。

复合模式,主要用来建立复杂对象。

举例

比如建一个房子,我们需要这么几步:

1 打基础

2 建框架

3 建室外

4 建室内

让我们用一个抽象类HouseBuilder来定义这四步。任何HouseBuilder类的子类将遵循这四步来建这个房子(也就是说,实施子类里的四个方法)。然后我们用一个WorkShop的类来强制实施这四步的顺序(也就是说,我们必须要在前三步都完成的情况下,才能建室内)。TestBuilder类将用来测试这些类之间的协调性以及检验建房的过程。

import java.util.*;
class WorkShop {
   //force the order of building process
   public void construct(HouseBuilder hb) {
     hb.buildFoundation();
     hb.buildFrame();
     hb.buildExterior();
     hb.buildInterior();
   }
}

时间: 2024-12-03 05:11:18

Java设计模式(二)的相关文章

Java设计模式(三—四)----工厂模式

Java设计模式 工厂模式 一.引言 二.分类 三.简单工厂模式 四.工厂方法模式 五.抽象工厂模式 六.和工厂方法模式区别 七.总结 工厂模式 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象.在这些情况,新对象的建

请大神推荐java设计模式视频教程

问题描述 目前急需学习java设计模式,有没有讲得好容易理解的java设计模式视频?请各位推荐推荐 解决方案 解决方案二:专门讲设计模式的视频还真不太多,推荐看书吧,headfirst设计模式,比较生动,容易理解解决方案三:尚学堂马士兵讲的解决方案四:恩,同意一楼的,HeadFirst设计模式,我也正在看,挺好的.如果实在想看视频的话,好像慕课网上面也有一些设计模式的视频,不过好像只有几种解决方案五:搜索尚学堂,他们有免费的设计模式的视频,同时给你推荐一本书,<大话设计模式>,讲得很幽默,很清

优化-java设计模式学习问题?

问题描述 java设计模式学习问题? 我网站的基本功能都已实现,现在要对网站版本升级优化,想快速了解设计模式相关内容,求各位好人推荐视频教程,各种培训机构的都行~ 解决方案 java设计模式学习java-单例设计模式学习7.18_java学习_单例设计模式 解决方案二: 爱酷学习网去看看.里面是软件编程教训视频 解决方案三: 有一个故事版本的java设计模式的,百度一下就出来了 解决方案四: 百度一下,设计模式,会有很多视频和介绍的

java设计模式问题,对于功能多变的情况

问题描述 java设计模式问题,对于功能多变的情况 1.不如说,我有一个需求,功能要不停的添加 2.用什么模式好? 3.有模式吗? 解决方案 可以看看工厂方法模式或策略模式 解决方案二: 没有任何一种设计模式可以做到对于一个设计,可以随意增加功能. 之所以分那么多设计模式,就是在某些需求不许改变的情况下,去做到对另一些需求的灵活扩充. 解决方案三: 如果你不谈具体的需求,要做到什么功能都可以扩充,那么你需要的不是设计模式,而是脚本语言解释引擎.

您的设计模式,我们的设计模式 java设计模式

http://download.csdn.net/download/yangxin00000000/3212729   您的设计模式,我们的设计模式 java设计模式

求java对二值图片中的独立块切割,并存成新的独立图片。

问题描述 求java对二值图片中的独立块切割,并存成新的独立图片. 例如:将类似下图中有5个小块块,则存成5个文件.谢谢! 解决方案 或者能得到这几个不规则块的中心坐标也可以,其他的我自己能解决. 解决方案二: 自己找到办法了,用imageJ解决了.

java设计模式---prototype(原型)模式

设计 java设计模式---prototype(原型)模式 定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.      Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,      工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求      原型对象拷贝它们自己来实施创建.      适用性:当要实例化的类是在运行时刻指定时,例如,通过动态装载:或者  为了避免创建一个与产品类层次平行的工厂类层

Android开发之Java设计模式基础篇

今天我们就Android开发中的一些设计模式做一些基础性的掌握,本次就Android项目的架构设计相关内容做分析: 1. 静态工厂方法 静态工厂方法可以算是工厂方法加单例模式的整合在Android平台上,由于Android的Context可以很好的传递实例,静态工厂方法可以提到传统的类构造器,对于一些逻辑的服务提供类可以考虑这样的设计,比如文件下载.图片裁剪等操作. 2. Java的类访问权限 对于程序的可靠性而言,成员变量尽量私有,通过暴漏公开的方法来访问这些私有成员,提供类似getXXX和s

浅谈Java设计模式关于原型模式(Prototype)思索建议

java教程:关于Java设计模式关于原型模式(Prototype) IT信息技术http://www.52ij.com/jishu/ 首先需要弄清楚什么叫原型模式,或者说为什么要有原型模式,运用它会给我们带来什么或能解决什么问题?原型模式(Prototype)同抽象工厂模式同属于创建型模式,它主要关注于大量相同或相似对象的创建问题,应用原型模式就是先需要一个原对象,然后通过对原对象进行复制(克隆),来产生一个与原对象相同或相似的新对象.注意这里所说的对象相同不是指复制出来的副本对象与原对象是同

Java设计模式详解之门面模式(外观模式)_java

门面模式(Facade Pattern)也叫外观模式,它隐藏系统的复杂性,并向客户端提供一个可以访问系统的接口.这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性,为子系统中的一组接口提供了一个统一的高层访问接口,这个接口使得子系统更容易被访问或使用.这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用. 简而言之,就是把一堆复杂的流程封装成一个接口供给用户更简单的使用,这个设计模式里有三个角色: 1)门面角色( facade ):