我的一个朋友正在讨论关于对象的状态转换的这些设计技术(他是一个Java大师,顺便说一句),在没有boolean myState
成员的情况下执行,而是将该myState
成员声明为实现"所有者"的相同接口的对象.
好吧,我太神秘了,所以你可以在这里找到讨论代码示例.
就个人而言,我对这种方法很兴奋,因为我的朋友向我解释了背后的哲学; 从设计的角度来看,我也认为它非常连贯.顺便说一句,我关心的是性能和内存使用情况,因为编译时和运行时优化可能会进入游戏.由于我不了解JIT编译器和JVM内部,我很想知道更广泛的意见.
你有什么想法?
我不同意 - 除了有用的设计模式,这个特殊的例子是荒谬的过度杀伤:
一个15行的课程,具有易于理解的过程
成为一个50行的课程,目的是混淆
我没有看到这是一个改进 - 它违反了YAGNI 1和ASAP 2,使代码膨胀,并降低了效率(多个对象在不需要时实例化以完成工作).
作为一种智力锻炼,温和有趣.作为编程习惯,可怕!;-)
2 ASAP =尽可能简单