java - 如果无代码 : is it just an intellectual challenge or is it concretely useful?

标签 java design-patterns oop

<分区>

我的一个 friend 正在谈论这些关于对象状态转换的设计技术(他是 Java 大师,顺便说一句),执行时没有 boolean myState 成员,而是声明 myState 成员作为实现与“所有者”相同的接口(interface)的对象。

好吧,我说得太隐晦了,所以你可以找到讨论here ,带有代码示例。

就我个人而言,我对这种方法感到很兴奋,因为我的 friend 向我解释了它背后的哲学;从设计的角度来看,我也认为它非常连贯。顺便说一句,我的担忧主要是性能和内存使用,因为编译时和运行时优化可能会进入游戏。由于我不了解 JIT 编译器和 JVM 内部结构,所以我很想有更广泛的见解。

你在想什么?

最佳答案

我不同意 - 除了有用的设计模式,这个特殊的例子是荒谬的矫枉过正:

  • 15 行的类(class),流程简单易懂
  • 变成了一个 50 行的类,目的模糊不清

我看不出这是一个改进 - 它违反了 YAGNI1 和 ASAP2,使代码膨胀,并降低了效率(实例化多个对象来完成这项工作不需要时)。

作为智力练习,有点意思。作为一种编程习惯,可怕! ;-)


1 YANGI = 你不会需要它

2 ASAP = 尽可能简单

关于java - 如果无代码 : is it just an intellectual challenge or is it concretely useful?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/516677/

相关文章:

PHP MVC,谁拥有 URL?

java - Oracle JDK 和 OpenJDK 的区别

java - Java Web 应用程序基于日期的许可逻辑?

java - 将许多 'if else' 语句转换为更简洁的方法

php 全局在类内但在函数外?

java - 设计包含生成 ID 的 Java 类的最佳方法

java - 有时间限制的 RxJava zip

.net - 我应该如何从 ViewModel 触发警报?

java - 如何从 Java 中的装饰器模式中删除装饰对象