系统设计(架构设计六大原则)
系统设计
进行体系规划时,有必要把所要规划的对象体系和围绕该对象体系的环境一起考虑,前者称为内部体系,后者称为外部体系,它们之间存在着彼此支持和彼此制约的联系,内部体系和外部体系结合起来称作总体体系。因而,在体系规划时有必要选用内部规划与外部规划相结合的思考原则,从总体体系的功用、输入、输出、环境、程序、人的要素、物的前言各方面归纳考虑,规划出整体最优的体系。进行体系规划应当选用分化、归纳与反应的工作办法。不管多大的复杂体系,首要要分化为若干子体系或要素,分化可从结构要素、功用要求、时刻序列、空间配置等方面进行,并将其特征和功用标准化,归纳成最优子体系,然后将最优子体系进行总体规划,从而得到最优体系。在这一进程中,从规划计划开端到规划出满意体系停止,都要进行分阶段及总体归纳评价,并以此对各项工作进行修正和完善。整个规划阶段是一个归纳性反应进程。
体系规划一般使用两种办法:一种是归纳法,另一种是演绎法。使用归纳法进行体系规划的程序是:首要尽可能地收集现有的和过去的同类体系的体系规划材料;在对这些体系的规划、制作和运行状况进行分析研究的基础上,依据所规划的体系的功用要求进行屡次挑选,然后对少数几个同类体系作出相应修正,最终得出一个抱负的体系。演绎法是一种公理化办法,即先从普遍的规矩和原理动身,依据规划人员的知识和经历,从具有必定功用的元素集合中挑选能契合体系功用要求的多种元素,然后将这些元素依照必定形式进行组合(见体系结构),从而创造出具有所需功用的新体系。在体系规划的实践中,这两种办法往往是并用的。
架构设计六大原则
单一职责原则(SRPSingleResponsibilityPrinciple)->可参考firstChapterversion2
定义:对一个类来说,应该仅有一个引起它变化的原因。简单来说就是模块的划分需要做到职责清晰,不要既能满足A需求,又能满足B需求,这样耦合太强,不利于后期的扩展和维护。
开闭原则(COPOpenClosePrinciple)->可参考firstChapterversion3
定义:软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是对于修改是封闭的。简单的说就是程序中类应该是易于扩展的,而不是一有什么新的需求或者变化就去修改原来的代码,这样很容易出现问题。
里氏替换原则(LSPLiskovSubstitutionPrinciple)->可参考firstChapterversion3
定义:在基类出现的地方,其子类也可以出现,并且不会出现错误。简单的说就是利用了Java面向对象思想中的继承、多态的特性。
依赖导致原则(DIPDependenceInversionPrinciple)->可参考firstChapterversion3
定义:高层次的模块不依赖于低层次的模块的实现细节。简单来说就是依赖抽象(高层次模块)而不依赖具体实现(低层次模块)。
接口隔离原则(ISPInterfaceSegregationPrinciples)->可参考firstChapterversion3
定义:不依赖不需要的接口,从而容易重构、更改和重新部署。
迪米特原则(最少知识原则LKP/LODLeastKnowledgePrinciple)->可参考firstChapterversion4
定义:一个类应该对自己需要耦合或者调用的类知道的最少,类的内部如何实现与调用者或者依赖者没关系,调用者或者依赖者只需要知道它需要的方法即可。
优秀作品:
评论:系统设计(架构设计六大原则) [查看原文]
作品分类:热门主题