Java设计模式-建造者模式

概述

关注我的公众号:Java编程中心。回复学习资料,无套路获取Java免费学习视频。
扫描二维码关注微信我的公众号

建造者模式属于对象的创建模式。它是较为复杂的创建模型模式,它将客户端与包含多个组成部分的复杂对象的内部组成部分与装配方式,只要知道所所需构建者的类型即可。可以将一个产品的内部表象(属性)与产品的生成过程分隔开来,从而使一个建造过程生成具有不同的内部表象的产品对象。在大部分情况下都可以使用new关键字或者工厂模式来创建对象,但是有些对象却比较复杂,比如一些旅游套票可以分为:普通成年人、退休老人、半票有座小孩、免费无座小孩、军人及其家属等,他们有不同的规定和优惠。如果通过new或者工厂模式来创建对象会造成不便,因为所需的参数太多,对象也很复杂。显然构建套票所需的数据异常复杂,导致套票对象的构建难以进行。为了处理这个问题,Builder模式出现了。Builder模式是一种分布构建对象的模式,仍然以旅游票为例,既然一次性构建套票对象有困难,那么久分布完成:

第一步:构建普通成年人票

第二步:构建退休老人票

第三步:构建半票有座小孩

第四步:构建免费无座小孩

第五步:构建军人及其家属等

Builder模式实例

  • 首先,创建一个TicketHelper对象,它是配置类,能帮我们一步一步完成构建对象,如下所示:

//TicketHelper.java


public class TicketHelper {
    public void builAdult(String info){
    System.out.println("构建成人票逻辑:"+“info”);


}
  public void builAdult(String info){
    System.out.println("构建退休老人逻辑:"+“info”);


}
public void builAdult(String info){
    System.out.println("构建半票有座小孩逻辑:"+“info”);


}
public void builAdult(String info){
    System.out.println("构建免费无座小孩逻辑:"+“info”);


}
public void builAdult(String info){
    System.out.println("构建军人及其家属等逻辑:"+“info”);


}
}

这里只是模拟,所以用打印信息代替真实的逻辑,但这样并不会带来理解上的困难。然后,需要构建类-TicketBuilder,如下所示:

//TicketBuilder.java

class TicketBuilder{
    public static Object builder(TicketHelper helper){
    System.out.println("通过TicketHelper构建套票信息");
    return null;

}
}

显然Builder方法很简单,它只有一个配置类的参数,通过他就可以得到所有套票的信息,从而构建套票对象。有了这两个类,可以使用以下代码来完成套票对象的构建。

构建套票对象:

TicketHelper  helper=new TicketHelper();
helper.buildAdult("成人票");
helper.buildChildrenForSeat("有座儿童票");
helper.buildChildrenNoSeat("无座儿童票");
helper.buildElderly("老人票");
helper.buildSoldier("军人票");
Object ticket=Ticketbuilder.builder(Helper);


}

** 这就是构建模式的使用,构建分成若干步,通过一步步构建信息,把一个复杂的对象构建出来。**

总结:

设计模式比较抽象,尤其对于初学者来说,理解更是困难的,建议读者多动手。代码都是可以运行的,按着思路,一步步做下去,慢慢理解他们,只看不写代码的人永远也学不会。

注明:文章参考来源:Java EE互联网轻量级框架整合开发
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于微信小程序的家政服务预约系统采用PHP语言和微信小程序技术,数据库采用Mysql,运行软件为微信开发者工具。本系统实现了管理员和客户、员工三个角色的功能。管理员的功能为客户管理、员工管理、家政服务管理、服务预约管理、员工风采管理、客户需求管理、接单管理等。客户的功能为查看家政服务进行预约和发布自己的需求以及管理预约信息和接单信息等。员工可以查看预约信息和进行接单。本系统实现了网上预约家政服务的流程化管理,可以帮助工作人员的管理工作和帮助客户查询家政服务的相关信息,改变了客户找家政服务的方式,提高了预约家政服务的效率。 本系统是针对网上预约家政服务开发的工作管理系统,包括到所有的工作内容。可以使网上预约家政服务的工作合理化和流程化。本系统包括手机端设计和电脑端设计,有界面和数据库。本系统的使用角色分为管理员和客户、员工三个身份。管理员可以管理系统里的所有信息。员工可以发布服务信息和查询客户的需求进行接单。客户可以发布需求和预约家政服务以及管理预约信息、接单信息。 本功能可以实现家政服务信息的查询和删除,管理员添加家政服务信息功能填写正确的信息就可以实现家政服务信息的添加,点击家政服务信息管理功能可以看到基于微信小程序的家政服务预约系统里所有家政服务的信息,在添加家政服务信息的界面里需要填写标题信息,当信息填写不正确就会造成家政服务信息添加失败。员工风采信息可以使客户更好的了解员工。员工风采信息管理的流程为,管理员点击员工风采信息管理功能,查看员工风采信息,点击员工风采信息添加功能,输入员工风采信息然后点击提交按钮就可以完成员工风采信息的添加。客户需求信息关系着客户的家政服务预约,管理员可以查询和修改客户需求信息,还可以查看客户需求的添加时间。接单信息属于本系统里的核心数据,管理员可以对接单的信息进行查询。本功能设计的目的可以使家政服务进行及时的安排。管理员可以查询员工信息,可以进行修改删除。 客户可以查看自己的预约和修改自己的资料并发布需求以及管理接单信息等。 在首页里可以看到管理员添加和管理的信息,客户可以在首页里进行家政服务的预约和公司介绍信息的了解。 员工可以查询客户需求进行接单以及管理家政服务信息和留言信息、收藏信息等。
Java设计模式是一组经过实践验证的面向对象设计原则和模式,可以帮助开发人员解决常见的软件设计问题。下面是常见的23种设计模式: 1. 创建型模式(Creational Patterns): - 工厂方法模式(Factory Method Pattern) - 抽象工厂模式(Abstract Factory Pattern) - 单例模式(Singleton Pattern) - 原型模式(Prototype Pattern) - 建造者模式(Builder Pattern) 2. 结构型模式(Structural Patterns): - 适配器模式(Adapter Pattern) - 桥接模式(Bridge Pattern) - 组合模式(Composite Pattern) - 装饰器模式(Decorator Pattern) - 外观模式(Facade Pattern) - 享元模式(Flyweight Pattern) - 代理模式(Proxy Pattern) 3. 行为型模式(Behavioral Patterns): - 责任链模式(Chain of Responsibility Pattern) - 命令模式(Command Pattern) - 解释器模式(Interpreter Pattern) - 迭代器模式(Iterator Pattern) - 中介者模式(Mediator Pattern) - 备忘录模式(Memento Pattern) - 观察者模式(Observer Pattern) - 状态模式(State Pattern) - 策略模式(Strategy Pattern) - 模板方法模式(Template Method Pattern) - 访问者模式(Visitor Pattern) 4. 并发型模式(Concurrency Patterns): - 保护性暂停模式(Guarded Suspension Pattern) - 生产者-消费者模式(Producer-Consumer Pattern) - 读写锁模式(Read-Write Lock Pattern) - 信号量模式(Semaphore Pattern) - 线程池模式(Thread Pool Pattern) 这些设计模式可以根据问题的特点和需求来选择使用,它们提供了一些可复用的解决方案,有助于开发高质量、可维护且易于扩展的软件系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值