黑马程序员技术交流社区

标题: 如何利用好interface和skeletal implementation [打印本页]

作者: zydandqq    时间: 2014-7-3 19:41
标题: 如何利用好interface和skeletal implementation
想设计一套城建的架构模型,以几个基本的单位举例:Barrack(兵营),Army(士兵),Ship(资源船),Arena(竞技场)

我的想法是:
1:设计两个接口Buildable(可建造的)和Upgradable(可升级的),分别给出相应的skeletal implementation:AbstractBuilding和AbstractUpgrade,封装好Build和Upgrade的模板方法,子类直接用

2:业务逻辑需求,Barrack可以建造也可以升级、Arena只能建造、Ship和Army只能升级。特殊的地方在Barrack这个类,因为它可以利用AbstractBuilding和AbstractUpgrade里面的两个模板方法,但由于无法多继承,可以通过模拟多继承(内部类、聚合)的手段实现。

但是这个架构逻辑感觉很不爽,还有很多种建筑和Barrack一样是既能建造也能升级的,每一个都要通过模拟多继承来达到复用两个skeletal implementation模板方法的目的吗?





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2