软件架构模式基本概念及三者区别

 我来答
猪八戒网
2023-04-26 · 百度认证:重庆猪八戒网络有限公司官方账号
猪八戒网
猪八戒网(zbj.com)创建于2006年,现已形成猪八戒网、天蓬网和线下八戒工场的“双平台+一社区”服务模式,是中国领先的人才共享平台。
向TA提问
展开全部

在做软件架构设计时,根据不同的抽象层次可分为三种不同层次的模式:架构模式(Pattern)、设计模式(DesignPattern)、代码模式(CodingPattern)。

架构模式是一个系统的高层次策略,涉及到大尺度的组件以及整体性质和力学。架构模式的好坏可以影响到总体布局和框架性结构。

设计模式是中等尺度的结构策略。这些中等尺度的结构实现了一些大尺度组件的行为和它们之间的关系。模式的好坏不会影响到系统的总体布局和总体框架。设计模式定义出子系统或组件的微观结构。

代码模式(或成例)是特定的范例和与特定语言有关的编程技巧。代码模式的好坏会影响到一个中等尺度组件的内部、外部的结构或行为的底层细节,但不会影响到一个部件或子系统的中等尺度的结构,更不会影响到系统的总体布局和大尺度框架。

架构模式(Pattern)

一个架构模式描述软件系统里的基本的结构组织或纲要。架构模式提供一些事先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南。称之为系统模式。

6?1MVC模式,一个架构模式常常可以分解成很多个设计模式的联合使用。MVC模式常常包括调停者(Mediator)模式、策略(Strategy)模式、合成(Composite)模式、观察者(Observer)模式等。

6?1Layers(分层)模式,有时也称Tiers模式

6?1Blackboard(黑板)模式

6?1Broker(中介)模式

6?Process(分散过程)模式

6?(微核)模式

架构模式常常划分成如下的几种:

一、模块结构(FromMudtoStructure)型。帮助架构师将系统合理划分,避免形成一个对象的海洋。包括Layers(分层)模式、Blackboard(黑板)模式、Pipes/Filters(管道/过滤器)模式等。

二、分散系统(DistributedSystems)型。为分散式系统提供完整的架构设计,包括像Broker(中介)模式等。

三、人机互动(InteractiveSystems)型,支持包含有人机互动介面的系统的架构设计,例子包括MVC(Model-View-Controller)模式、PAC(-Abstraction-Control)模式等。

四、AdaptableSystems型,支持应用系统适应技术的变化、软件功能需求的变化。如Reflection(反射)模式、Microkernel(微核)模式等。

设计模式(DesignPattern)

一个设计模式提供一种提炼子系统或软件系统中的组件的,或者它们之间的关系的纲要设计。设计模式描述普遍存在的在相互通讯的组件中重复出现的结构,这种结构解决在一定的背景中的具有一般性的设计问题。

设计模式常常划分成不同的种类,常见的种类有:

创建型设计模式,如工厂方法(FactoryMethod)模式、抽象工厂(AbstractFactory)模式、原型(Prototype)模式、单例(Singleton)模式,建造(Builder)模式等

结构型设计模式,如合成(Composite)模式、装饰(Decorator)模式、代理(Proxy)模式、享元(Flyweight)模式、门面(Facade)模式、桥梁(Bridge)模式等

行为型模式,如模版方法(TemplateMethod)模式、观察者(Observer)模式、迭代子(Iterator)模式、责任链(Chainof)模式、备忘录(Memento)模式、命令(Command)模式、状态(State)模式、访问者(Visitor)模式等等。

以上是三种经典类型,实际上还有很多其他的类型,比如Fundamental型、Partition型,Relation型等等。设计模式在特定的编程语言中实现的时候,常常会用到代码模式。比如单例(Singleton)模式的实现常常涉及到双检锁(Double-CheckLocking)模式等。

代码模式(CodingPattern)

代码模式(或成例)是较低层次的模式,并与编程语言密切相关。代码模式描述怎样利用一个特定的编程语言的特点来实现一个组件的某些特定的方面或关系。

较为著名的代码模式的例子包括双检锁(Double-CheckLocking)模式等

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式