最近要填写项目经验,想把去年写的一个网站(Spring MVC)经验写上去装一下,刚百度了一个Spring MVC就搜出了一堆东西,然后想当然的搜了一个三层架构(这是学软件工程的时候提过的),以为就是MVC,然后,我就懵了,原来他俩不是一回事!同时,我这学期在学《软件体系结构》这门课,老师第一节课的时候笑着对我们说,这门课的目标是培养未来的架构师,我心里想,比码农高大上多了!那时候我以为架构=结构。

下面我就来记录一下我的一个想当然引发的几个概念区别:架构、框架和设计模式。

首先说一下我刚学的模式:针对特定的场景特定的问题提出的一种解决方案,比如Gof提出的23种设计模式,如工厂模式等;软件架构是系统的一个草图,阐述各个组件之间的通信,层次划分,一旦系统开始详细设计,架构蓝图就很难,甚至无法改变。如我最开始提到的三层架构——表示层、业务逻辑层、数据访问层;框(kuàng)架Framework是软件项目开发过程中提取特定领域的共性部分形成的体系结构,它是一个半成品,是可复用的设计,如Spring框架。

 三者的比较

  1、框架与架构

框架比架构更具体,架构偏于设计,框架偏于技术;一个架构可以通过多种框架来实现。

  2、框架与设计模式

一种设计模式可以应用于不同的框架被不同的语言实现;框架是多种设计模式和代码的混合体。二者共同致力于重用,因而思想可以互相借鉴。

3、架构于与设计模式

设计模式是用于解决一种特定的问题,范围较小;架构针对体系结构进行设计,范畴较大。一个架构中可能会出现多个设计模式来结果架构中的问题。

综上,我们在做一个项目的时候,首先设计出来的应该是架构,然后再来考虑运用什么框架和设计模式。不过平时遇到的都不是特别复杂的系统,用一些框架和设计模式足矣。

以上就是我的一些学习经验,还是有些抽象,待我积累更多的项目经验,再来补充一些具体的吧。

架构、框架和设计模式相关推荐

  1. 架构、框架和设计模式关系

    在学习软件工程的时候,第一次接触到了架构这个概念.当初接触的时候对其的理解是非常浅薄的,因为那时候工程经验比较少,对这样一个深层次的概念还是模糊不清楚的. 随着学习的深入,开始接触了设计模式,也就是那 ...

  2. 架构、框架、设计模式

    注:个人理解仅供参考 概念 架构: 简单的说架构就是一个蓝图,是一种设计方案,将客户的不同需求抽象成为抽象组件,并且能够描述这些抽象组件之间的通信和调用. 框架: 软件框架是项目软件开发过程中提取特定 ...

  3. 架构师成长之路:什么是软件框架?框架和设计模式什么关系?

    前面,已经把概要设计阶段要完成的任务和方法做了基本的讲述. 接下来看看如何做基础框架设计,在讲之前,我们先来统一一下对软件框架的认识:然后去理解框架和设计模式的关系,为后续的讲解做好准备. 一:什么是 ...

  4. PHP框架之间有什么区别,php框架和设计模式区别

    框架和设计模式的区别 有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念. 框架.设计模式这两个概念总容易被混淆,其实它们之间还是有区别的.(推荐学习:PH ...

  5. 框架和设计模式的区别

    框架和设计模式的区别 有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念. 框架.设计模式这两个概念总容易被混淆,其实它们之间还是有区别的.框架通常是代码重 ...

  6. 构架、框架、设计模式之间的关系简述

    一.软件体系结构和框架的定义 软件体系结构的英文单词是"architecture". Architecture的基本词义是建筑.建筑学.建筑风格. 软件体系结构虽然根植于软件工程, ...

  7. 什么是框架,框架和设计模式的关系,为什么要用框架?(转)

    文章出处:http://blog.csdn.net/cjyy1973/archive/2006/02/01/590553.aspx 框架是一个应用程序的半成品.框架提供了可在应用程序之间共享的可覆用的 ...

  8. 构架、框架和设计模式的理解

    一个 架构师 构架了一个框架,约束框架使用者只能使用规定的结构来进行二次开发. 架构是指软件结构的专用名词,构架只是架构的另一种叫法. 框架是半成品.典型地,框架是系统或子系统的半成品. 1.设计模式 ...

  9. 简述mvc和java三层框架,springMVC设计模式和javaWeb三层框架

    一.springMVC  设计模式 MVC模式是软件工程中的一种能够软件架构模式,把软件分为三个基本部分,模型(model).视图(view)和控制器(controller).使程序简化,更加直观. ...

最新文章

  1. 一个系统的html源代码,h5后台模板源码bootstrap网站后台管理系统HTML页面后台源代码...
  2. 博士申请 | 加拿大Mila实验室唐建教授招收深度学习方向博士生和实习生
  3. 二、数据库原理-设计理论
  4. 给新手看的 Micronaut 入门教程,10 分钟写出一个 Micronaut 程序
  5. 分布式架构下常见序列化技术-了解序列化的发展
  6. new Class() 与 Class.newInstance()
  7. Tomcat可以在eclipse里启动,可是不能訪问首页的问题
  8. java中的weblogic_Java访问Weblogic中的连接池
  9. python的pandas行数和索引_python – 使用索引值访问Pandas Data Frame行
  10. python3安装scapy_centos 7 安装python3.7 和scapy
  11. ppt拖动就复制_在PPT中有哪些常用快捷键可大大提高效率?
  12. 只能修饰唯一一个html元素的选择器是,HTML常用标签和CSS选择器的使用及演示——2019.1.14...
  13. VM ware下载教程
  14. 【数据结构】第六章——图(详解)
  15. 利用JDBC连接服务器数据库(Android)
  16. 全球及中国建筑设计行业十四五发展方向与投资决策建议报告2022版
  17. 微信是胖客户端瘦服务器,一款管理微信客户软件的系统体系结构设计?
  18. hdr_beg(host) 主机名开始
  19. 路由与交换系列之企业级ipv6和AAA通讯实验(上)
  20. 苏州实时公交app接口根据站台查询公交状态

热门文章

  1. Ubuntu-20.04永久修改DNS服务器
  2. 查询数据库中所有表的记录数
  3. Java网络编程之实现资源下载详解【王道Java】
  4. 中国软件服务外包IT公司最新排名-IT外包最强前50名
  5. 【如何配置环境变量】
  6. 论坛发贴与跟贴的技巧
  7. python 赋值语句
  8. STC15单片机 线性按键控制LED流水灯位移
  9. AndroidInputSystem
  10. 获取系统相册图片进行九宫布局