首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法使用生成器模式划分子类:装运(生成器)在装运中不是公共的;无法从包外部访问

生成器模式是一种创建型设计模式,用于创建复杂对象的构建过程与其表示分离。它通过将对象的构建过程分解为一系列步骤来实现,从而使得同样的构建过程可以创建不同的表示。

在生成器模式中,通常会定义一个抽象的生成器类,该类定义了一系列构建步骤的抽象方法。然后,针对不同的具体对象,可以派生出不同的生成器子类,实现这些抽象方法以完成对象的构建过程。

然而,在某些情况下,由于特定的限制或设计需求,可能无法使用生成器模式来划分子类。其中一个限制是装运(生成器)在装运中不是公共的。这意味着生成器模式中的某些构建步骤无法在子类中进行实现,因为它们无法访问装运中的某些私有成员或方法。

另一个限制是无法从包外部访问生成器模式中的某些构建步骤。这意味着在生成器模式中,某些构建步骤可能需要访问包内部的私有成员或方法,但由于访问权限的限制,无法从包外部直接访问这些步骤。

在这种情况下,可以考虑使用其他设计模式或技术来解决问题。例如,可以使用工厂模式来创建对象,而不是使用生成器模式。工厂模式可以通过提供一个工厂类来封装对象的创建过程,并隐藏具体对象的构建细节。这样,无论是装运是否公共,还是是否可以从包外部访问,都不会影响对象的创建过程。

总结起来,生成器模式是一种常用的创建型设计模式,用于创建复杂对象的构建过程与其表示分离。然而,在某些情况下,由于特定的限制或设计需求,可能无法使用生成器模式来划分子类。在这种情况下,可以考虑使用其他设计模式或技术来解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 在王者荣耀角度下分析面向对象程序设计B中23种设计模式之生成器模式

    在王者荣耀这款游戏中,玩家可以根据自己的喜好来调整页面布局,比如有的玩家觉得左侧出装顺手,而有的玩家则觉得右侧出装顺手;再比如说玩家在局内想要通过展开地图向队友发送信号时,有些玩家觉得地图左侧展开操作顺畅,而另外一些玩家觉得右侧展开操作顺畅。这些组件的页面布局亦可通过自定义来完成。所有的这些功能,达到了王者荣耀设计者让玩家能更好地体验游戏的初衷。 在本实例中,包含有地图左侧展开右侧出装、地图右侧展开左侧出装、地图/出装同左/右侧等多种组件,玩家对于不同组件的组合(布局)有着不同的要求。很显然,在编写代码时无法在构造方法中进行硬编码来满足所有玩家对组件组合(布局)的要求,而是将布局结果对象的构造过程分成若干个步骤,即根据当前组件个数,在一个接口中定义若干个方法,每个方法负责创建布局结果对象的一个组件,而实现该接口的类将负责创建布局结果对象,也就是说,将布局结果对象的创建过程封装在另一个类中(像这种封装一个对象的创建过程的类称作生成器),从而实现满足所有玩家对于出装、地图展开不同布局需求的目的。

    00

    在王者荣耀角度下分析面向对象程序设计B中23种设计模式之生成器模式

    在王者荣耀这款游戏中,玩家可以根据自己的喜好来调整页面布局,比如有的玩家觉得左侧出装顺手,而有的玩家则觉得右侧出装顺手;再比如说玩家在局内想要通过展开地图向队友发送信号时,有些玩家觉得地图左侧展开操作顺畅,而另外一些玩家觉得右侧展开操作顺畅。这些组件的页面布局亦可通过自定义来完成。所有的这些功能,达到了王者荣耀设计者让玩家能更好地体验游戏的初衷。 在本实例中,包含有地图左侧展开右侧出装、地图右侧展开左侧出装、地图/出装同左/右侧等多种组件,玩家对于不同组件的组合(布局)有着不同的要求。很显然,在编写代码时无法在构造方法中进行硬编码来满足所有玩家对组件组合(布局)的要求,而是将布局结果对象的构造过程分成若干个步骤,即根据当前组件个数,在一个接口中定义若干个方法,每个方法负责创建布局结果对象的一个组件,而实现该接口的类将负责创建布局结果对象,也就是说,将布局结果对象的创建过程封装在另一个类中(像这种封装一个对象的创建过程的类称作生成器),从而实现满足所有玩家对于出装、地图展开不同布局需求的目的。

    01

    专栏最后一期——在王者荣耀角度下分析面向对象程序设计B中23种设计模式之总结篇

    历时两个月,《23种设计模式在王者荣耀中的应用》专栏已经全部更新结束了。 在这个专栏创立的2个月的时间里,文章总共发表了25篇,总点击量达到了3w+;我也通过这个专栏结交到了许多志同道合的朋友。想当初我只想的是在学习《面向对象程序设计B》过程中对书上的代码与当下最火的手游——王者荣耀结合并做一些改进,发表到CSDN中作为学习笔记便于日后复习,真是没有想到一发表居然会收获如此巨大,实在是承蒙各位关照了。 这个专栏的编写,使我收获满满,每一篇的文章都是对书上的知识点、老师讲的重点、网上提供的创新点以及自己在改进代码过程中体会点的梳理总结。 在发表文章的这段时间里,恰巧赶上CSDN的“原力计划——第二季”鼓励原创作者的官方活动热潮,使我的文章能被更多的人看到:有的读者通过我的文章更加深刻地掌握了相关知识,也有的读者对文章的内容结构做了一些批评指正。非常感谢大家的关注支持,感谢CSDN每一期都给“小火箭”,同时也再一次感谢CSDN提供的这一平台。 本文是《23种设计模式在王者荣耀中的应用》专栏的最后一期。 主要内容一个是对过去做一总结,另一个是对前几期相关知识中未涉及的内容在本文做一补充。

    02
    领券