- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
架构设计定义
架构设计指的是:围绕着软件系统,对它的架构,进行定义、文档编写、维护和改进、
并验证实现等,把这一系列活动组合起来,就是我们所说的架构设计。
如下图所示:
架构设计最全详解(定义原则及5大模式)-mikechen
架构设计只是系统设计里面的一个阶段,但是架构设计却是应用建设里面的最核心环
节。
为什么需要架构设计?
需求让技术变复杂:做一个博客和做一个谷歌,技术复杂度不是一个等级,需要提前
架构设计来整体把控;
人员让技术复杂:软件开发通过是一个团队,成员水平不一样,如何有效地协作是一
个很大的考验;
技术本身复杂:软件项目使用的编程语言、框架、数据库、人工智能、大数据等技术,
都有学习成本;
要让软件稳定运行也复杂:软件开发完成上线后,充满了各种不确定性,比如云服务
商可能宕机,比如明星发个微博可能造成系统瘫痪,又比如有人删库跑路了;
正因为存在以上这几个原因,我们需要架构设计去降低这些复杂性。
降低开发成本:复杂系统拆分成多个相对简单的服务,使得普通程序员都可以完成,
降低了人力成本;
帮助组织人员高效协作:通过抽象和拆分,让开发人员可以独立完成功能模块;
组织好各种技术:选择合适的编程语言、协议、框架、组件等,最高效地实现需求目
标;
保障服务稳定运行:利用成熟的架构方案,例如负载均衡、限流、降级、熔断等,保
障服务的高可用;
架构设计六大原则
1.单一职责原则
对于类来说,一个类应该只负责一项职责,这就是单一职责原则,非常清晰。
单一职责原则的核心就是控制类的粒度大小、将对象解耦、提高其内聚性。
通常情况下,我们应当遵守单一职责原则。
2.接口隔离原则
接口隔离原则要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接
口中只包含客户感兴趣的方法。
客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖,应该建立在最小的
接口上。
接口隔离原则和单一职责都是为了提高类的内聚性、降低它们之间的耦合性,体现了
封装的思想。
但两者是不同的,主要就是2点:
单一职责原则主要是约束类,它针对的是程序中的实现和细节;
接口隔离原则主要约束接口,主要针对抽象和程序整体框架的构建。
3.依赖倒置原则
由于在软件设计中细节具有多变性,而抽象层则相对稳定,因此以抽象为基础搭建起
来的架构要比以细节为基础搭建起来的架构要稳定得多。
备注:这里的抽象指的是接口或者抽象类,而细节是指具体的实现类。
所以,依赖倒置原则的核心就是要我们面向接口或者抽象编程,而不是面向细节编程
(实现类编程),这样程序可维护性高很多啊。
依赖倒置原则主要就是2点:
1)高层模块不应该依赖底层模块,二者都应该依赖其抽象;
2)抽象不应该依赖细节,细节应该依赖抽象。
4.里氏替换原则
里氏替换原则告诉我们,当使用继承时候,类B继承类A时,除添加新的方法完成新
增功能外,尽量不要修改父类方法预期的行为。
里氏替换原则的重点在不影响原功能,而不是不覆盖原方法。
子类尽量不要重写父类的方法,这就是里氏替换原则的核心精髓。
5.开闭原则
开闭原则是编程中最基础、最重要的设计原则。
比如:软件中的对象(类、模块、函数等)应该对于扩展是开放的,对于修改是封闭
的。
当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已
有的代码来实现变化,这就是开闭原则的核心精髓。
6.迪米特法则
迪米特法则,就是一个对象应该对其他对象保持最少的了解,又叫最少知道原则,即
一个类对自己依赖的类知道越少越好。
迪米特法则在于降低类之间的耦合,每个类尽量减少对其他类的依赖,尽量减少对外
暴露的方法,使得功能模块独立且低耦合
架构设计模式
随着互联网的发展,软件架构从单体到分布式,到如今基础设施的变革,我们迎来了
云原生时代。
随着分布式技术的成熟,微服务架构开始大行其道,在此基础上的边车服务和
servicemesh也开始进入蓬勃发展期。
整体上架构设计模式,主要分为如下5类:
1.分层架构
分层架构,英文名layeredarchitecture,是最常见的软件架构,也是事实上的软件标准
架构。
分层架构将软件分成若干个水平层,每一层都有清晰的角色和分工,层与层之间通过
接口通信。
分层架构,最常见的就是是四层结构,如下图所示:
架构设计最全详解(定义原则及5大模式)-mikechen
第一层:表现层presentation:负责用户界面;
第二层:业务层business:负责实现业务逻辑;
第三层:持久层persistence:负责提供数据,
您可能关注的文档
- 分馏塔检修内容.pdf
- 关于锁字的研究报告.pdf
- 关于体外诊断试剂注册申报的调研报告.pdf
- 公司薪酬分配管理制度5篇.pdf
- 信息报送制度.pdf
- 供电公司交通运输安全生产事故应急处置预案.pdf
- 企业决策模拟实训总结(2篇).pdf
- 五年级综合实践活动计划(2篇).pdf
- 乡村旅游规划管理方案范文.pdf
- 不锈钢板广告语.pdf
- 甘肃省白银市会宁县第一中学2025届高三3月份第一次模拟考试化学试卷含解析.doc
- 2025届吉林市第一中学高考考前模拟生物试题含解析.doc
- 四川省三台县芦溪中学2025届高三下第一次测试生物试题含解析.doc
- 2025届江苏省启东市吕四中学高三适应性调研考试历史试题含解析.doc
- 浙江省宁波市十校2025届高三二诊模拟考试历史试卷含解析.doc
- 甘肃省甘南2025届高考生物必刷试卷含解析.doc
- 河北省石家庄市一中、唐山一中等“五个一”名校2025届高考历史四模试卷含解析.doc
- 江西省南昌市进贤一中2025届高考生物考前最后一卷预测卷含解析.doc
- 甘肃省白银市会宁县第四中学2025届高三第二次模拟考试历史试卷含解析.doc
- 宁夏银川市宁夏大学附属中学2025届高考化学押题试卷含解析.doc
文档评论(0)