美文网首页Java 杂谈javaJava
java设计模式-建造者模式

java设计模式-建造者模式

作者: yiqiquhuxi | 来源:发表于2019-07-03 16:01 被阅读67次

建造者模式,属于创建型模式

        首先,我们在这里举个例子,大家应该都玩过网络游戏,进入游戏时候,我们要选择自己喜欢的角色,职业,性别,精细一点的游戏我们要选择各种个性化,如鼻子大小,身高,肤色,眼睛颜色等等。

游戏角色个性化设置 游戏角色个性化设置

        我们用设计模式的话,怎么才能实现创建不同职业和个性化的功能呢。有的人说可以用工厂模式,工厂模式当然可以实现,工厂模式可以把所有 (职业 + 人物个性化) 的对象都创建一遍,那将是乘积的运算,10个职业*10个眼睛颜色*10个头发颜色等等, 那将要提前创建个多少对象,不敢想象, 代码几乎没有得到复用 。


        在这里我们完全可以用建造者模式来简单的解决这个问题。如果说工厂模式创建的是对象,那么建造者模是创建细节对象。话不多说直接上代码:

游戏人物:

游戏人物模型

建造者:

创建人物的接口类

具体人物(法师和战士):

创建一个法师 创建一个战士

指挥官:

相当于创建角色的确定按钮

测试类:

结果测试

到这里,我们就用了2个类(ZhanshiBuilder,FashiBuilder),就能创建所有的个性化战士和法师,相对于工厂模式,我们代码更加的简洁,增加了代码的复用,减少了代码的耦合,问题得到了很好的解决。


总结:建造者模式是创建型模式中比较常见的一种,如果说工厂模式关注的是整体对象的创建,而建造者模式是更加关注对象细节的创建。在jdk源码中这些类使用了建造者模式:

java.lang.StringBuilder#append() (非线程安全)
java.lang.StringBuffer#append() (线程安全)
java.nio.ByteBuffer#put()(还CharBuffer,ShortBuffer,IntBuffer,LongBuffer
FloatBuffer和DoubleBuffer)
javax.swing.GroupLayout.Group#addComponent()
所有的实现 java.lang.Appendable

相关文章

  • 设计模式

    Java 设计模式情景分析 ——单例模式 Java 设计模式情景分析——建造者模式 Java 设计模式情景分析——...

  • Android中涉及的模式

    我的Java设计模式-建造者模式 我的Java设计模式-观察者模式 重学设计模式之单例模式

  • Java设计模式教程

    Java设计模式教程 Java工厂设计模式 Java抽象工厂模式 Java单例模式 Java建造者(Builder...

  • java建造者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java单例模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java外观模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java适配器模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java观察者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java代理模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java策略模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

网友评论

    本文标题:java设计模式-建造者模式

    本文链接:https://www.haomeiwen.com/subject/qsaqhctx.html