当前位置: 首页 > 科技观察

软件设计的风格

时间:2023-03-22 15:25:54 科技观察

1风格之于软件系统,就像文化之于人类社会一样,都会对系统的每一个元素(无论是模块、组件、对象还是功能)产生影响,只要在使用样式的边界范围内。这种文体影响就像一种文化烙印,体现出很强的一致性。当然,一旦选错款式,就会像17世纪五月花号的落魄船员闯入印第安部落。它可能是混乱和过时的。2RoyFielding对风格的定义是:“风格是一种用于对架构进行分类并定义其共同特征的机制。每种风格都为组件的交互提供了一个抽象,并通过忽略其余架构的偶然细节来捕捉一个架构的本质特征互动模式。”这个定义有两个关键词:ClassificationCommonFeatures这两个关键词都与抽象有关。同时这句话也提到了style和collaboration的关系,也就是collaboration的抽象。架构风格不应涉及详细的设计细节。需要找出那些稳定不变的本质特征,而这个特征又与系统的目标和要求相匹配。3RoyFielding在论文《架构风格与基于网络的软件架构设计》中写道:网络研究恰恰相反,侧重于系统间共同通信行为的细节,提高特殊通信技术的性能,却往往忽略了改变一个应用程序的交互方式对它的影响性能大于更改用于交互的通信协议。这其实反映了宏观架构和微观架构的关系,两者应该是一致的。当然,宏观架构的影响是战略的影响,微观架构的影响是战术的影响。在分而治之的架构原则下,微架构的影响虽然存在,但影响主要发生在局部。4、划定自己的边界线,保证边界内风格的一致性。除了边界之外,还有其他查看风格一致性的标准。风格指导设计,从而推动一组建筑属性的满意度。架构属性还包括对架构的约束。这些约束一方面可以规范设计和实现,另一方面可以减少选项,使设计更容易。5架构风格是一组协作的架构约束和元素之间的关系,这些元素在符合该风格的任何架构中都是允许的。将样式视为约束是合理的,但约束更像是从一个大的封闭集中剪裁,规定你不能做什么。风格不仅规定了你不能做什么,还告诉你应该做什么。它涉及一个开放的大空间。我们需要找到空间中和谐的内容,去除不和谐的部分。排除的内容实际上是违反架构约束的内容。架构风格强调软件架构的不同方面,一个特定的架构可能由多种架构风格组成。这说明架构风格是有层次的。为了保证架构的一致性,需要在整体层面体现统一的架构风格,在不同的边界内呈现出另一种架构风格。也就是说,这种风格的多样性和孤立性,以及风格的高低,实际上对应的是建筑的层次。6对于设计风格,除了要保证风格的一致性外,关键是要找到最符合所解决问题的风格。要了解你需要解决的问题,你还必须了解不同架构风格的特点、优缺点,清楚地知道这些架构风格适用于哪些场景。【本文为专栏作家“张艺”原创稿件,转载请联系原作者】点此阅读更多该作者好文