我对在2种不同的环境中使用2个不同的类感兴趣。这两个类应该共享相同的结构(方法),但生产中使用的那个将是“轻量级的”,具有较少的验证或较少的功能或不同的操作。
示例:一个SQL查询类,它不检查字段的类型/存在。 其他示例:记录并不显示消息的错误处理类。
我假设一个特定的设计模式已经存在,但我真的不知道应该挖掘哪一个。
答案 0 :(得分:4)
这可能只是我......但这是一个非常糟糕的主意。
您不应该在实时中运行未在开发/测试中运行的代码。否则,无法验证代码是否正常工作(当然,除了将其推入生产和交叉手指之外)。
出于这个原因,我认为你不会找到你正在寻找的好例子。
<强>更新强>
您所描述的内容与原始问题的内容略有不同。如果是这种情况,您可以读取指定验证和日志记录级别的配置文件的“框架”。这样,您的配置文件可能因环境而异,并且仍然运行相同的代码库。
答案 1 :(得分:0)
在不同的环境中使用不同的代码不是一个好主意。
对于您的场景,我认为最好的选择是将配置方面外部化为您希望在特定环境中避免的事项以及部署应用程序时设置详细日志开/关,字段开启/关闭的完整性检查等。
必须以一致的方式对环境进行任何更改以避免出现问题。版本控制系统和一致的构建和部署过程是您的朋友。
答案 2 :(得分:0)
同意上述大多数关于在生产与开发环境中不运行不同代码的评论。
也就是说,您可能正在寻找Factory或Factory Method模式。
答案 3 :(得分:0)
在我的情况下,我有一个带有沙箱和实时环境的支付网关。我所做的是使用factory模式+接口(所以所有网关都有相同的签名)+配置(系统知道哪个类需要实例)