design pattern : Builder,使用目的,将复杂对象的构建过程和其部件解耦
来源:互联网 发布:网络直播有哪些平台 编辑:程序博客网 时间:2024/04/23 17:27
design pattern : Builder
将一个复杂对象的 构建 与他的 表示 分离,使同样的构建可以有不同的表示
此模式是一步一步创建一个复杂对象,用户通过制定复杂对象的类型和内容来构建对象,without knowing the details about creation. similar to abstract factory
使用目的,将复杂对象的构建过程和其部件解耦
simple,以装自行车为例,假设自行车由2部件组成,轮子和车架
Builder模式就是把自行车的创建和部件的创建分别开来,分别用Builder 和 Director类
先建一个接口,定义部件的创建
public interface Builder {
//创建部件轮子
void wheel();
//创建部件车架
void Sketon();
//返回最后组装成品结果 (返回最后装配好的自行车)
//成品的组装过程不在这里进行,而是转移到下面的 Director 类中
进行.
//从而实现了解耦过程和部件
Bike getResult();
}
用Director来组装
public class Director {
private Builder builder;
public Director( Builder builder ) {
this.builder = builder;
}
// 将部件 partA partB 最后组成复杂对象
//这里是将车轮 车架组装成自行车的过程
public void construct() {
builder.wheel();
builder.sketon();
}
}
实现接口
public class ConcreteBuilder implements Builder {
Part partA, partB, partC;
public void wheel() {
//这里是具体如何构建 wheel 的代码
System.out.println("wheels have been built!");
};
public void sketon() {
//这里是具体如何构建 sketon 的代码
System.out.println("sketon have been built!");
};
public Bike getResult() {
Bike bike1 =null;
System.out.println("bike have been built!");
return bike1;
};
}
复杂对象:产品 Bike
public interface Product { }
部件:
public interface Part { }
简单的 Test函数
public static void main(String[] args) {
// TODO Auto-generated method stub
ConcreteBuilder builder = new ConcreteBuilder();
Director director = new Director( builder );
director.construct();
Bike product = builder.getResult();
}
Builder 模式的应用
在 Java 实际使用中,我们经常用到"池"(Pool)的概念,当资源提供者无法提供足够的资源,
并且这些资源需要被很多用户反复共享时,就需要使用池.
"池"实际是一段内存,当池中有一些复杂的资源的"断肢"(比如数据库的连接池,也许有时一
个连接会中断),如果循环再利用这些"断肢",将提高内存使用效率,提高池的性能.修改
Builder 模式中 Director 类使之能诊断"断肢"断在哪个部件上,再修复这个部件.
- design pattern : Builder,使用目的,将复杂对象的构建过程和其部件解耦
- Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
- Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
- Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
- Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
- Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
- Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
- (转)Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?
- 7.Builder Pattern的学习和使用
- 设计模式4 - 构建者模式Builder Design Pattern
- 【Design Pattern】Builder模式的一种实现
- 2. 【创建和销毁对象】用构建器创建复杂参数对象(Builder模式)
- Design Pattern 1-builder
- [Design Pattern]:Builder
- design pattern : Builder
- Delphi Design Pattern - Builder
- Design Pattern--Builder
- Design Pattern:Builder
- 如何让软件自动登陆站点
- 发现了editplus的一点问题
- 知道自己获得MVP今天很高兴
- .NET 框架库源代码
- 希腊字母
- design pattern : Builder,使用目的,将复杂对象的构建过程和其部件解耦
- 用DirectX7.0开发3D效果
- 网页设计常用的一些技巧
- Java应用技巧:对于 Cookie 的操作详解
- 激励人生成功的10句经典英文-转载
- IE下载对话框(取消选择后想提示的问题)
- 一些符号的英文读法
- 瑞星,請回答
- 世界著名汽车标志欣赏