Java建造者模式案例分析

Java建造者模式案例分析

这篇文章主要讲解了“Java建造者模式案例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java建造者模式案例分析”吧!

什么是建造者模式

建造者(Builder)模式的定义: 指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。

优点

1、封装性好,构建和表示分离。

2、扩展性好,各个具体的建造者相互独立,有利于系统的解耦。

3、客户端不必知道产品内部组成的细节,建造者可以对创建过程逐步细化,而不对其它模块产生任何影响,便于控制细节风险。

缺点

1、产品的组成部分必须相同,这限制了其使用范围。

2、如果产品的内部变化复杂,如果产品内部发生变化,则建造者也要同步修改,后期维护成本较大。

知识点

建造者(Builder)模式和工厂模式的关注点不同:建造者模式注重零部件的组装过程,而工厂方法模式更注重零部件的创建过程,但两者可以结合使用。

建造者模式实现

案例: 神医豆豆炼丹

产品角色(Product):丹药

抽象建造者(Builder):抽象丹方

具体建造者(Concrete Builder):具体丹方

指挥者(Director):神医豆豆

神医豆豆炼制九转仙丹和太虚化神丹

注意:为了省事这里说的丹方内容只有丹药名字和效果,并没有材料之类的。

丹药

丹药类声明炼丹的名称和效果两个属性

publicclassDan{/*cailiao丹药的名称danhuo丹药的效果*/privateStringname;privateStringxiaoguo;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetXiaoguo(){returnxiaoguo;}publicvoidsetXiaoguo(Stringxiaoguo){this.xiaoguo=xiaoguo;}}

抽象丹方

抽象类,new一个丹药对象,声明两个抽象方法分别是给丹药命名和赋予丹药效果,还有一个生成丹药的方法。

//抽象丹方abstractclassDanFang{Dandan=newDan();publicabstractvoidname();publicabstractvoidxiaoguo();publicDangetDan(){returndan;}}

九转仙丹丹方

具体丹方类继承丹方类,并且实现两个抽象方法。

//九转仙丹丹方publicclassJiuZhuanextendsDanFang{@Overridepublicvoidname(){dan.setName("九转仙丹");}@Overridepublicvoidxiaoguo(){dan.setXiaoguo("原地成仙");}}

太虚化神丹丹方

具体丹方类继承丹方类,并且实现两个抽象方法。

//太虚化神丹丹方publicclassTaixuextendsDanFang{@Overridepublicvoidname(){dan.setName("太虚化神丹");}@Overridepublicvoidxiaoguo(){dan.setXiaoguo("意念化神");}}

神医豆豆

声明一个丹方属性,一个有参构造方法,一个炼丹方法。

publicclassDouDou{privatefinalDanFangdanLu;publicDouDou(DanFangdanLu){this.danLu=danLu;}//炼丹方法publicDanlian(){//放入材料danLu.name();//释放丹火danLu.xiaoguo();//成丹returndanLu.getDan();}}

测试

炼制两个丹药。

publicclassDemo{publicstaticvoidmain(String[]args){//炼制九转仙丹//new一个九转仙丹的丹方DanFangjiu=newJiuZhuan();//把丹方给豆豆DouDoudou=newDouDou(jiu);//炼丹生成丹药Dandan=dou.lian();System.out.printf("丹药名称:%s丹药效果:%s",dan.getName(),dan.getXiaoguo());System.out.println();//炼制太虚化神丹//new一个九转仙丹的丹方DanFangtai=newTaixu();//把丹方给豆豆DouDoudous=newDouDou(tai);//炼丹生成丹药Dandans=dous.lian();System.out.printf("丹药名称:%s丹药效果:%s",dans.getName(),dans.getXiaoguo());}}

感谢各位的阅读,以上就是“Java建造者模式案例分析”的内容了,经过本文的学习后,相信大家对Java建造者模式案例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是恰卡编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

发布于 2022-04-11 21:18:44
收藏
分享
海报
0 条评论
26
上一篇:vue怎么使用Vuex状态管理模式 下一篇:vue怎么去掉所有的console.log输出
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码