切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
设计模式
框架
大数据
物联网
实现方案
算法
分布式
第三方应用
消息中间件
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
进阶开发
架构、框架、设计模式、库概念理解
[TOC] ## 1. 框架 **定义概述:**框架是一套完整的、定义好的结构和规范。它为你搭建好了程序的“骨架”,规定了程序该如何组织、各个部分该如何交互。 **定义:**框架(Framework)是一套可复用的代码和设计,用于实现某一类功能或解决某一类问题,但规定了定义程序如何运行和构建的规范、使用什么架构以及可以使用代码的条件。通过这样做,它强调了程序员应遵守的结构或标准。框架提供了通用的架构,开发者可以在其上进行定制以构建特定的应用程序。比如Spring框架用于构建Java企业应用 **你与它的关系:**“框架调用你”(这就是著名的 “控制反转” )。你把自己的代码“插入”或“填充”到框架预留好的位置。 **通俗说法:**就像是一个完整的“预制房屋建造套件”。这套件已经为你准备好了主梁结构、墙板标准件、预设的水电管线通道。你需要做的是:在这个给定的结构中,填充具体的墙体、选择灯具、贴什么样的壁纸。 **关键:**框架控制整体流程和架构,你按照它的规则在特定位置“填空”或“配置”你的代码。 ### 1.1. 框架的特点 提供了一站式解决方案、控制权在框架手中、你需要在它的约束下工作,但它能帮你处理很多底层和通用问题。 + 框架是代码的重用 + 框架可以包含多种设计模式,框架通常是针对某一类应用或领域设计,提供了该领域通用的架构和组件 + 框架是一套完整的解决方案,对项目侵入性比较大,项目要变更框架,需要对项目进行重构 ### 1.2. 常见的框架 #### 1.2.1. Java Spring框架针对企业级Java应用,提供了依赖注入、数据访问模板等功能、事务管理等企业应用相关的功能 #### 1.2.2. .NET + ASP.NET框架:用于构建web应用程序和服务,包括WebForms、MVC、WebAPI等。 + Windows Presentation Foundation(WPF):用于构建Windows桌面应用程序。 + Windows Communication Foundation(WCF):用于构建服务导向架构的应用。 + Entity Framework(EF):用于快速开发基于数据库的应用程序。 + Unity:一个轻量级的依赖注入容器框架。 + Xamarin:用于跨平台移动应用开发。 + ML.NET:用于在.NET应用中添加机器学习能力。 + SignalR:用于在客户端和服务器之间建立实时通信。 + Orleans:提供虚拟Actor模型来实现高度可拓展的应用。 + .NET Core:用于跨平台部署的轻量级模块化框架。 + ASP.NET Core:新一代开源跨平台的高性能WEB框架。 #### 1.2.3. Python + Django框架针对web应用,内置了ORM、模板系统、管理后台等web开发常用的组件 + TensorFlow框架针对机器学习应用,提供了神经网络构建、模型训练、运算优化等机器学习相关的模块 ## 2. 架构 **定义:**架构(Architecture)是软件整体的结构设计,它定义了软件的主要组成部分和这些部分之间的关系。架构主要考虑非功能性需求,如性能、可扩展性、安全性等 **作用:**架构是介于框架和设计模式之间,部分代码重用,部分设计模式重用,它是结合和应用了框架和设计模式,架构中可以有多个框架也可以有多种设计模式 ### 2.1. 常用的架构 + MVC架构:MVC架构将软件分为模型(Model)、视图(View)和控制器(Controller)三个主要组成部分,它们之间通过 interfaces 进行交互。 > MVC 是一种编程思想,但它不是设计模式 ## 3. 设计模式 **定义:**设计模式(Design Pattern)是可复用的解决某一特定问题的设计方案,设计模式关注的是单个组件或模块的设计和实现,通常用于解决具体的编程问题。设计模式不是代码,而是软件设计中常见问题的抽象描述和概括的解决方案思路。如工厂模式、单例模式等 ### 3.1. 设计模式的特点 + 设计模式是设计的重用 + 设计模式比框架更加的抽象,它是解决问题的方案描述,它适用于各个领域 ### 3.2. 常见的设计模式 + 工厂模式:工厂模式将实例化对象的过程封装在工厂类中,通过工厂类创建对象,而不是直接new一个对象。这可以降低对象之间的耦合。 ## 4. 库 **定义:**库(Library)是一组可复用的函数或类,提供了特定功能,可以被引入项目中使用。库通常针对某一领域或功能提供了现成的实现代码,以便开发者直接使用。比如Java中的Math库 **你与它的关系:**“你调用库”。你是程序的主人,负责主流程。当你需要一个功能时,你去库里面找现成的来用。 **特点:**库或者叫插件、SDK,它是提供了某一个小功能,对项目的入侵性较小,如果库不能满足需求可以较轻松的切换其它的库来进行替换,比如从jquery切换到Zepto,从EJS切换到art-template **例如:**Java中的java.util.HashMap是一个哈希表的实现,提供了put、get等方法来存储和访问键值对。开发者可以直接使用这个库,而不需要自己实现哈希表。 ## 5. 框架、架构、设计模式、库总结 + 架构从高层设计软件结构,框架提供通用套路代码,设计模式提供通用设计思想,库给出具体实现代码。 + 架构关注整体结构、框架提供通用架构,需要定制、设计模式是概括的解决思路、库提供现成的实现代码。架构是宏观结构设计,框架和库是微观的组成代码,设计模式是二者之间的连接纽带 ## 6. 库与框架的区别 |特性|库|框架| |--|--|--| |控制权|在你手中。你决定何时何地使用它。|在框架手中。你的代码被框架调用。| |性质|一组工具。|一套规则和结构(脚手架+工具箱)。| |灵活性|高。可以自由选择用哪个、不用哪个。|相对较低。必须在框架的体系内工作。| |范围|通常专注于一个特定功能(如图片处理、网络请求)。|通常针对一个应用类型提供完整解决方案(如Web应用、移动应用)。| |关系|你的代码调用库。|框架调用你的代码(控制反转)。| |比喻|工具包(电钻、螺丝刀)。|建筑蓝图+预制件+施工流程。| |选择成本|低。可以轻松引入或替换。|高。一旦选定,项目整体架构会受其影响。| |学习目标|学习它的 API(有哪些函数,怎么用)。|学习它的架构思想、约定和工作流程。|
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号