UML关系简单介绍
UML简单使用的介绍
创建型设计模式
Android设计模式-单例模式
Android设计模式-工厂模式
Android设计模式-抽象工厂模式
Android设计模式-建造者模式
Android设计模式-原型模式
结构型设计模式
Android设计模式-代理模式
Android设计模式-装饰模式
Android设计模式-适配器模式
Android设计模式-组合模式
Android设计模式-门面模式
Android设计模式-桥接模式
Android设计模式-享元模式
行为型设计模式
Android设计模式-策略模式
Android设计模式-命令模式
Android设计模式-责任链模式
Android设计模式-模版方法模式
Android设计模式-迭代器模式
Android设计模式-观察者模式
Android设计模式-备忘录模式
Android设计模式-中介者模式
Android设计模式-访问者模式
Android设计模式-状态模式
Android设计模式-解释器模式
1.定义
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
2.建造者模式UML图
建造者模式UML图角色介绍
- Director 导演类,告诉Builder开始创建对象。导演类起到了封装的作用,避免高层模块深入到建造者内部的实现。在建造者模式比较庞大时,导演类可以有多个。
- Builder 抽象建造者类 规范产品的组建,一般由子类实现
- ConcreteBuilder 具体建造者类,实现抽象类定义的所有方法,并返回一个组建好的对象
- Product 产品类,具体要生产的对象
3.实现
3.1产品类
public class Product {
public void m1(){
}
}
3.2 抽象建造者
public abstract class Builder {
public abstract void setpart();
public abstract Product buildProduct();
}
3.3 具体建造者
public class ConcrereBuilder extends Builder {
private Product product=new Product();
@Override
public void setpart() {
/**
* 产品类内的处理逻辑
*/
}
@Override
public Product buildProduct() {
return product;
}
}
3.4 导演类
public class Director {
private Builder builder=new ConcrereBuilder();
//构建不同的产品
public Product getProduct(){
builder.setpart();
/**
* 设置不同的零件,组建不同的产品
*/
return builder.buildProduct();
}
}
4.总结
4.1优点
- 封装性,使用建造者模式可以使客户端不必知道产品内部的具体组成细节,不需要关心其内部是怎么实现的
- 容易扩展,建造者独立,对扩展是非常有利对
- 便于控制细节风险,由于具体的建造者是独立的,因此可以设置不同的建造过程而不对其他模块产生影响。
4.2使用场景
- 相同的方法,不同的执行过程,产生不同的结果,可以使用建造者模式
- 多个属性都可以装配到一个对象中,但是产生的结果又不相同,则可以使用建造者模式
- 产品类非常复杂,或者产品类中调用顺序不同产生不同的效能,这时候也可以使用建造者模式
- 在对象的创建过程中会使用到一些其他对象,这些对象在产品对象的创建过程中不易得到时,也可以使用建造者模式封装该对象的创建过程。
注意事项
建造者模式关注的是零件类型和装配工艺(顺序),这是他与工厂模式最大不同的地方,虽然同为创建型模式,但是他们的住重点是不同的。
网友评论