假设您正在编写像Photoshop这样的应用程序(过滤器)等,如果使用单独的项目将每个过滤器作为单独的程序集?
主要思想是将每个过滤器作为节点,因此请将其视为:
sourceImage -> Sharpen -> Darken -> Contrast -> Blur ...
Run Code Online (Sandbox Code Playgroud)
在我看来,有这样的dll文件是有道理的:
[Filters folder]
Sharpen.dll
Darken.dll
Contrast.dll
Blur.dll
Run Code Online (Sandbox Code Playgroud)
但是很难像那样管理它们,这会阻止我internal对类成员使用关键字,对吧?
所以现在我只有1个dll用于所有过滤器.
组织装配的最佳实践是什么?
我不会限制你自己每个组件一个过滤器.您可能希望将实现类似功能的组件(例如颜色/对比度)组合在一起,同时将它们与非常不同类型的过滤器分开(例如边缘增强).
只是一个位的传闻:我经常看到的应用是难以管理,由于有太多的许多组件.我不记得曾经看到一个有问题的因为它没有足够分裂组件.我不是说它不会发生 - 只是我没有看到它.
NDepend工具的作者Patrick Smacchia表示,组件数量保持较低.你看这里.这也意味着您使用NDepend来管理命名空间之间的依赖关系.此外,如果您拥有更少的程序集并且部署更容易,则编译速度更快.
如果那就是你所追求的那样,那么DI(如StructureMap)解决方案可以为你提供可扩展性和可测试性.
有单独组件的原因:
避免单独组装的原因:
我认为这是经验所带来的.我自己的经验是,因为我已经成为一个成熟的.NET开发人员,我已经变得不那么倾向于创造更多的组件,除非有一个非常令人信服的理由.
| 归档时间: |
|
| 查看次数: |
1663 次 |
| 最近记录: |