建造者模式
GOF对建造者模式的定义是:“将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.”
public abstract class Builder { public abstract void BuildPartA(); public abstract void BuildPartB(); public abstract Product GetResult(); }public class Product{ ArrayList<String> parts = new ArrayList<String>(); public void Add(String part) { parts.add(part); } public void Show() { System.out.println("create product"); for(int i = 0;i<parts.size();i++) { String part = parts.get(i); System.out.println(part); } } }//具体的建造者类public class ConcreteBuilderA extends Builder{ private Product product = new Product(); @override public void BuildPartA() { product.Add("part A"); } @override public void BuildPartB() { product.Add("part B"); } @override public Product GetResult() { return product; } }public class ConcreteBuilderB extends Builder{ private Product product = new Product(); @override public void BuildPartA() { product.Add("part W"); } @override public void BuildPartB() { product.Add("part Z"); } @override public Product GetResult() { return product; } }//指挥者类public class Director { public void Construct(Builder builder) { builder.BuildPartA(); builder.BuildPartB(); } }
建造者的作用是隐藏产品的组装过程,如果需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以达到目的。
建造者模式是面向对象中“多态”的一个好应用。
工厂模式侧重点在于将对象的实例化延迟到子类中,创建者的侧重点则是保持一个对象创建过程的稳定性。
工厂模式专注于创造相同表象的对象,当需要得到具有多种表象的实例时,建造者模式才是好选择、
作者:球球球球笨
链接:https://www.jianshu.com/p/95dae91beb33
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦