我有一个非常普遍的设计问题,但我会用一个例子具体地描述它。
假设您正在为数字打印机开发嵌入式软件。机器有 4 个打印头(用于 C、M、Y、K 颜色中的每一种)。每个打印头执行相同的任务:取墨粉并将其放在页面上。
在运行时,我们可以用两种不同的方式组织 API。我们要么遵循逻辑(又名“功能”或“过程”)设计,以便客户端软件可以控制所有打印头的打印过程(例如,一次更改所有颜色的亮度)。或者我们遵循物理设计,以便客户端软件可以单独控制每个打印头(例如,仅更改洋红色的亮度)。
这是软件设计中的一个经典困境:我们要么按活动组织,要么按体系结构组织。按功能或按形式。我的问题是:是否有任何可靠的标准来选择一个?不同的项目会有不同的选择,都可以根据自己的情况选择合适的;所以我不问哪个最好,只问如何选择。例如,我会对您关于松散耦合、可维护性、分层、面向角色的设计、架构设计模式等的想法感兴趣。
| 归档时间: |
|
| 查看次数: |
1009 次 |
| 最近记录: |