• 先来看看框架、架构和设计模式的概念:

1.框架

框架(Framework)是一个框子——指其约束性,也是一个架子——指其支撑性。IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。

也就是说:1)框架本身一般不完整到可以解决特定问题;2)框架天生就是为扩展而设计的;3)框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的实用工具(utilities),也就是说框架时常配套了一些帮助解决某类问题的库(libraries)或工具(tools)。

2.架构

架构不是软件,而是关于软件如何设计的重要策略。软件架构决策设计到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件架构之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中。或许,人们常把架构和框架混为一谈的原因就在于此吧!我们不能指着某些代码,说这就是软件架构,因为软件架构是比具体代码高一个抽象层次的概念。架构势必被代码所体现和遵循,但任何一段具体的代码都代表不了架构。

3.设计模式

设计模式(英语 design pattern)是对面向对象设计中反复出现的问题的解决方案。又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

  • 接下来,具体分析:

初学时,框架、架构和设计模式的概念容易被混淆,其实它们之间还是有区别的。框架通常是代码重用,设计模式是设计重用,而架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。

设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

框架和架构的出现,都是为了解决软件系统日益复杂所带来的困难而采取“分而治之”思维的结果-----先大局后局部,就出现了架构;先通用后专用,就出现了框架。下图很好地揭示了这一点。架构是问题的抽象解决方案,它关注大局而忽略细节;而框架是通用半成品,还必须根据具体需求进一步定制开发才能变成应用系统。

简而言之,框架和架构的关系可以总结为两句话:(1)为了尽早验证架构设计,或者处于支持产品线开发的目的,可以将关键的通用机制甚至整个架构以框架的方式进行实现;(2)业界(及公司内部)可能存在大量可供重用的框架,这些框架或者已经实现了软件架构所需的重要架构机制,或者为未来系统的某个子系统提供了可扩展的半成品,所以最终的软件架构可以借助这些框架构造。

框架模式有哪些?

MVC、MTV、MVP、CBD、ORM等等;

框架有哪些?

C++语言的QT、MFC、gtk,Java语言的SSH 、SSI,php语言的 smarty(MVC模式),python语言的django(MTV模式)等等

设计模式有哪些?

工厂模式、适配器模式、策略模式等等

简而言之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。

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

  1. 框架模式与设计模式之区别

    http://my.oschina.net/u/991183/blog/109854  有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念. 框架.设计模式 ...

  2. Tomcat 系统架构与设计模式,第 1 部分: 工作原理

    Tomcat 系统架构与设计模式,第 1 部分: 工作原理 这个分为两个部分的系列文章将研究 Apache Tomcat 的系统架构以及其运用的很多经典设计模式.本文是第 1 部分,将主要从 Tomc ...

  3. 浅谈javaweb三大框架和MVC设计模式

    浅谈javaweb三大框架和MVC设计模式 转载自:http://blog.csdn.net/sunpeng19960715/article/details/50890705 小序:博主以前在学jav ...

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

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

  5. [强烈推荐] 新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析

    新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析 1.引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端. 本文基 ...

  6. Android架构演进 · 设计模式· 为什么建议你一定要学透设计模式?

    一.引言 Hello,我是小木箱,欢迎来到小木箱成长营Android架构演进系列教程,今天将分享Android架构演进 · 设计模式· 为什么建议你一定要学透设计模式? 今天分享的内容主要分为四部分内 ...

  7. 花椒移动端基础框架架构

    奇技指南 本文转载自花椒技术.作者:花椒android组 背景 随着公司业务需求的不断增加.三方合作不断接入.新APP快速产出,就会出现想在原有的代码中想增加新的业务和功能,怕影响老逻辑,想不影响老逻 ...

  8. 从零实现RPC框架1:RPC框架架构设计

    从零实现RPC框架1:RPC框架架构设计 1.什么是 RPC? RPC 的全称是 Remote Procedure Call,即远程过程调用.简单解读字面上的意思,远程肯定是指要跨机器而非本机,所以需 ...

  9. Netty框架架构解析+API+运行流程+网络编程文章集锦

    新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析 <!-- 作者区域 --><div class="author"><a class=& ...

最新文章

  1. 操作系统ppt_Python处理PPT文件的实用姿势
  2. java 1.7 新io 实践 NIO2
  3. ConcurrentHashMap的源码分析-为什么要做高低位的划分
  4. 网络逻辑结构设计的内容不包括( )。【最全!最详细解析!】
  5. matlab r2007课后答案,《MATLAB R2007基础教程》习题答案.doc
  6. 飞畅科技-工业以太网交换机组网方式介绍
  7. redis配置主从没效果_跟我一起学Redis之加个哨兵让主从复制更加高可用
  8. elementui 表头错位解决方法
  9. 猿创征文|弃文从工,从小白到蚂蚁工程师,我的 Java 成长之路
  10. [网络安全自学篇] 七十九.Windows PE病毒原理、分类及感染方式详解
  11. 菜鸟一枚,请大家多多关照
  12. 通过驱动断链来隐藏驱动
  13. python中复数的实部和虚部都是浮点数_Python基础:数值(布尔型、整型、长整型、浮点型、复数)...
  14. android 备份管理器,最佳Android备份提取器和备份解决方案
  15. vue中eslint报错的解决方案
  16. spring框架三种类型项目实现--基础maven类型、纯注解开发型、aop结合注解开发型
  17. 【ROM定制】官改教程:super.img解打包!
  18. 服务(service)-----本地服务
  19. 轻量纯css框架,27款经典的CSS框架小结 网页制作必备
  20. CVAE (条件 变分 自动编码器)

热门文章

  1. c语言程序无法打开文件,C语言fopen()总是提示无法正常打开文件
  2. 上海交大开源GPGPU青花瓷仿真环境搭建
  3. eclipse连接mysql数据库
  4. 49天精通Java,第13天,java字符串简介
  5. Linux-打包、压缩命令
  6. weinre安装及使用
  7. OPT机器视觉12月高峰论坛一览表
  8. 以Listener和Talker为例ROS1和ROS2代码对比
  9. 【翻译】通过GSoC、GSoD、LFX和Outreachy来庆祝CNCF实习的成功五周年
  10. Ironic console