【问题标题】:storing class names in database anti-pattern?在数据库反模式中存储类名?
【发布时间】:2014-07-11 16:15:37
【问题描述】:

对于一个需求,我正在考虑存储将针对不同客户类型在数据库中实例化的类的名称。例如:一个表,其中包含客户类型的列,例如 1,2 等,另一列存储将处理客户的类的名称。

所有这些类都将实现一个通用接口,并将根据进入的客户类型在运行时实例化。这个想法是在添加新客户时不编写代码。将创建一个新类并将其输入到数据库中。

我不确定这是否是反模式,因为它隐藏了在数据库中处理业务逻辑的类。

请提出您的建议。

【问题讨论】:

  • +1 接受的答案,但是数据库在 IoC 容器上添加了什么价值,可以为您完成更多工作?
  • 我计划使用的数据库表也将具有启用和禁用标志来打开和关闭客户处理。除此之外,如果 db 拥有一种新类型的客户,我不必添加 if 或 case 来处理该新类型。这就是想法。如果您有任何更好的可配置方式,请分享。

标签: design-patterns anti-patterns


【解决方案1】:

这似乎与将实现类的名称存储在配置文件中然后使用an IoC container resolve services based on that config 没有任何不同,这是可以接受的做法。

因此,我的回答是:不,这不是反模式。

【讨论】:

    猜你喜欢
    • 2019-08-30
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多