c# - Convention Over Configuration——这是一个合适的场景吗?

标签 c# convention-over-configur

我有一些结果类以面向对象的方式表示平面结果。平面结果以文本流的形式出现,格式化程序将平面结果格式化为结果的属性。

我假设我的约定将始终是 <ResultName>格式化程序。这是 Convention Over Configuration 的好案例吗?如果是,那在 Prism 中会是什么样子(如果 Prism 对这个问题很重要)。

谢谢。

最佳答案

我不确定 Prism 适合的位置,除非 Result-Formatter 对是特定于 Prism 的东西。

除此之外,我认为这是约定优于配置的一个很好的案例,因为您可以创建任意数量的结果类型和格式化程序,而无需将它们添加到任何映射或配置类/文件中。

但是,作为该公约和 API 的创建者,您有责任实现和支持该公约。假设您会反射(reflection)性地发现能够处理结果的格式化程序,这会在第一次请求或应用程序启动时完成吗?您将如何缓存映射?

约定优于配置的很大一部分是将决策从最终开发人员的肩上移开,转而采用合理的默认值和他们可以遵守的标准,但这意味着决定权落在您和级别上必须确定您提供的覆盖粒度。例如,此 API 的使用者是否可以在多个程序集中定义格式化程序(这可能是与 Prism 相关的考虑因素)?如果是这样,这些程序集是如何指定的?消费者能否偏离惯例并将不同名称的格式化程序映射到结果类型?

听起来这是一个只有您会使用的 API,其中大部分内容都没有实际意义,但这些只是一些普遍适用的考虑因素。

关于c# - Convention Over Configuration——这是一个合适的场景吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6046781/

相关文章:

fluent-nhibernate - Fluent NHibernate 自动映射类约定并未应用于整个类层次结构

c# - "The invocation of the constructor on type ' TestWPF.MainWindow ' that matches the specified binding constraints threw an exception."- 如何解决这个问题?

c# - VS 2015-WP8- "A specified communication resource (port) is already in use by another application."

ruby-on-rails - Ruby on Rails 命令和约定——它们是什么?

具有约定优于配置功能的 Java 依赖注入(inject)框架

ruby-on-rails - 如何配置 Rails 来访问不在其常规目录位置的媒体资源?

c# - 在 C# 中,跨多个源代码行传播单行字符串文字的最佳方法是什么?

c# - 用数组模拟 4 个象限

c# - 如何对文件中的 xml 节点进行排序?

c# - 将模型放在模型以外的文件夹中有什么问题?