java - 没有反射是否可以确定要运行的类

标签 java database oop solid-principles

所以我处于一种情况,我希望有一个包含要运行的类的对象的数据库。它看起来像:

id  | Description       | pricingClass
1   | "static pricing"  | staticDeliveryPrice.class
2   | "Dynamic pricing" | dynamicDeliveryPrice.class

这样做的目的是让我的编码具有灵 active 。我的想法是,这将允许通过多种方式来确定如何计算 deliveryMethod 的价格。

我担心的问题是,在这种情况下使用反射不好吗?有更好的方法吗?它是否遵循坚实的原则。(我会说是,但我的一部分不同意)。

最佳答案

您描述的是基于插件的架构。您真的需要这种灵 active 吗?通常在以下情况下有必要:

  • 您的项目外部的人需要在您的代码中添加新功能而无需您的干预
  • 您想允许对您的程序进行运行时修改。

否则就太过分了。您可以完全控制产品中的内容,因此您可以简单地依靠良好的旧多态性来隔离功能的不同实现。

此外,将业务逻辑放在数据库中并不是一件好事:你混合了关注点,你创建了强耦合(突然重命名类会变得烦人!),当然,更难推断你的数据库中发生了什么只需看代码即可。

关于java - 没有反射是否可以确定要运行的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42146066/

相关文章:

javascript - 稍后在不使用 .prototype 的情况下将其他功能添加到类中

javascript - Backbone.js 继承问题

java - 如何将 "a3b3"这样的字符串解压为aaabbb?

java - Spring中不同数据库的数据库连接

node.js - 如何使用 Node.js 从 Prometheus DB 获取数据

java - Hibernate 中的动态表名

python - Moose 与 Python 的 OO 系统相比如何?

java - 当标志为假时跳过条件

java - 应用程序应将其日志存储在 Mac OS 中的什么位置?

java - 如何在 jar 文件中使用 SQLite 数据库?