扩大
缩小

架构与设计的流程和核心概念笔记:一、概要

 什么是架构

软件架构是对系统的高层视角,或者是对系统的抽象。它关注的是某些对完成这个系统有最大帮助的方面,例如:可用性,稳定性以及灵活性。同时,架构对如何达到这些目的给出了指导和约束。

软件架构是软件系统的一张蓝图。

 

架构是和平台无关的,可确保开发的过程在一定的限制或者规则下进行。

架构和设计

架构和设计时两个不同的概念,它们也出现在不同的阶段,当软件系统的架构确定之后,设计就开始了。

  1. 结构是与系统的业务需求紧密联系。
  2. 设计时与系统的实现相关的。
  3. 设计将架构所关注的那些高层抽象的需求与具体的技术实现联系起来。

 

 Tier和Layer

Tier是物理分层,Layer是逻辑分层

 架构和框架

我们可能会把架构和设计固化在可重用的代码中,以便在创建其他新的项目时重复使用。那么我们此时需要的就是一个框架:它以编码的方式实现了架构和设计,更利于提高重用性和生产效率。

在软件世界中,将架构和设计写到框架里面是降低开销、提高重用性的最好方法。所以可以把框架看成是架构和设计的一种积累,经历多个项目的开发,不断的修改和完善,最后使得整个框架在性能、伸缩性、安全性等方面都能满足需求。

 

模式是经验的重用,模式对软件开发过程中出现的一些问题给出了比较好的解决方案。

 设计模式简介

一、创建型模式:用来创建对象的模式,抽象了实例化的过程。

  1. 单件模式(单例模式)
  2. 抽象工厂模式
  3. 工厂方法模式
  4. 生成器模式
  5. 原型模式

二、结构型模式:此模式讨论的是类和对象的结构,它采用继承机制来组合接口或者实现,或者通过组合一些对象,来实现新的功能。

  1. 适配器模式
  2. 桥接模式
  3. 装饰着模式
  4. 组合模式
  5. 门面模式
  6. 享元模式
  7. 代理模式

三、行为型模式:负责处理对象之间的信息交互和职责分配

  1. 职责链模式
  2. 命令模式
  3. 解释器模式
  4. 迭代器模式
  5. 中介者模式
  6. 备忘录模式
  7. 观察者模式
  8. 状态模式
  9. 策略模式
  10. 模板方法模式
  11. 访问者模式

 企业架构模式介绍

一、分层模式

  • 无须过多的了解其他层次,可以直接将某层作为一个有机整体来理解。
  • 可以替换某层的实现,并不会影响其他层,只要替换前后提供的服务相同即可
  • 可以将层次间的依赖性减少到最低
  • 分层有利于标准化工作

二、业务逻辑设计模式

  • 事务脚本模式(Transaction Script):以线性或者面向过程的方式来组织业务逻辑,将每一个业务流程都包装为一个大的、粗粒度的方法。
  • 活动记录(Active Record):活动记录,以底层的数据结构为基础来组织业务逻辑,每个对象都代表了表中一行记录
  • 领域模型(Domain Model):领域模型是对现实中的领域对象所进行的抽象和提炼,每个领域对象包含自己的数据和行为。

三、对象关系映射

  • 工作单元(Unit Of Work):确保所有相关的对象的改变在一个业务事务里面,同时确保在提交状态的时候维护业务对象的状态一致性,要么一起成功,要么一起失败。
  • 资源库(Repository):用来协调领域和数据映射层,使得领域成完全不关注数据的存取,隐藏了后台的所有机制。
  • 数据映射(DataMapper):指把原生的数据取出来复制给一个对象,然后把对象的数据再次转换保存为原生的数据的过程。
  • 标识映射(Identity Map):通过在映射中保存每个已经加载的对象,确保每个对象只加载一次,当要访问对象的时候,通过映射来查找它们。
  • 延时加载(Lazy Load):只在真正需要这个数据的时候才去加载。
  • 查询对象(Query Object):它能够用业务对象的语言而不是数据库语言来描述查询,这就意味着,我们在构建查询的时候,不必在意数据库中表名或者列名。

四、表现模式

  • Model View Presenter (MVP)模式
  • Model View Controller (MVC)模式
  • Model View View Model(MVVM)模式
  • Front Controller(前端控制器)模式
  • Page Controller(页面控制器)模式

五、基本模式

  • Layer Supertype(层超类型),让某一个类型充当一层所有类型的超类,在某一层中,所有的对象或者很多对象都具有相同的方法。

 

posted @ 2017-09-15 15:51  WindyAmy  阅读(340)  评论(0编辑  收藏  举报