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

我认为我的惯例将始终如一 <ResultName>格式化程序。这是约定优于配置的好例子吗?如果是,那么在 Prism 中会是什么样子(如果 Prism 对这个问题很重要)。

谢谢。

有帮助吗?

解决方案

我不确定 Prism 在哪里适合这个,除非结果格式化程序对是 Prism 特定的。

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

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

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

听起来这是一个只有您才会使用的 API,所以其中大部分内容都没有实际意义,但这些只是一些普遍适用的注意事项。

其他提示

不,这对我来说看起来更像是一致的命名。这对于拥有“可发现的 API”也很重要,您可以在其中轻松找到东西。

约定优于配置是指应用程序的某些部分如果遵循特定约定,则按预期连接/工作。例如Rails 期望您的模型、视图和控制器位于特定文件夹中并具有特定名称。只要您遵循此约定,框架就会神奇地自动找到它们并将它们连接在一起。这并不意味着您“必须”始终遵循它。还有一个选项可以覆盖默认行为,但这需要您向某些配置/映射文件添加一些内容/在某处编写一些代码。

约定优于配置有助于保持 80% 的场景简单快捷。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top