建造者模式
2021/5/5 10:57:43
本文主要是介绍建造者模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 类图
- Builder:创造者接口,定义创建一个Product对象所需要的各个部件的操作
- ConcreteBuilder:具体的创造者实现,创建各个部件并进行组装,同时还提供一个让用户获取组装完成后的产品对象的方法
- Director:指挥者,主要用来使用Builder接口,以一个统一的过程来构建所需要的Product对象
- Product:具体产品,包含多个部件
2. 示例
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
2.1 创建者接口
public abstract class AbstractBuilder { Meal meal = new Meal(); public abstract void buildFood(); public abstract void buildDrink(); public Meal getMeal(){return meal;} }
2.2 接口实现
public class SetMealA extends AbstractBuilder { public void buildFood() {meal.setFood("油条");} public void buildDrink() {meal.setDrink("豆浆");} } public class SetMealB extends AbstractBuilder { public void buildFood() {meal.setFood("面包");} public void buildDrink() {meal.setDrink("牛奶");} }
2.3 具体产品
public class Meal { private String food; private String drink; public void setFood(String food) { this.food = food; } public void setDrink(String drink) { this.drink = drink; } @Override public String toString() { return "Meal{" + "food='" + food + '\'' + ", drink='" + drink + '\'' + '}'; } }
2.4 指挥者
public class Director { private AbstractBuilder builder; public Director(AbstractBuilder builder) {this.builder = builder;} public Meal provideMeal() { builder.buildFood(); builder.buildDrink(); return builder.getMeal(); } }
2.4 客户端
public class Client { public static void main(String[] args) { System.out.println(new Director(new SetMealA()).provideMeal()); } }
3. 优点
- 将整体的构建算法和部件构造分离,松散耦合
- 可以很容易改变产品内部的表示
- 更好的复用性
这篇关于建造者模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-21订单系统资料入门教程:轻松管理你的订单
- 2024-09-21Java部署资料:新手入门教程
- 2024-09-21Java部署资料:新手入门教程
- 2024-09-21Java订单系统资料:新手入门教程与实战指南
- 2024-09-21Java管理系统资料入门教程
- 2024-09-21从零开始学习Java监控系统资料
- 2024-09-21Java就业项目资料:新手入门的必备教程
- 2024-09-21Java全端资料:初学者指南
- 2024-09-21Java全栈资料入门教程及资源汇总
- 2024-09-21Java日志系统资料入门教程