OOP:
封装:隐藏内部实现,稳定外部接口;好处:保证对象自身的数据完整性和安全
继承:子类继承父类的成员;好处:实现代码复用,方便拓展
多态:
A:不同子类对象同一个消息(方法调用);做出不同的反映
B:同一个类在不同情况下表现出不同的行为
AOP: 好处:纵向重复,横向抽取机制,取代了传统纵向继承体系重复性代码
委托和事件
委托:它是一种特殊的类型,用delegate关键字来修饰,它可以把方法作为参数的引用
事件:它是在委托类型前加个event关键字修饰,它需要通过+=来注册委托,它支持注册多个委托
接口和抽象
接口:它是一个引用类型,interface关键字来修饰,它不能有实现的方法,派生类继承接口必须实现接口所有成员,接口可以被多个继承
抽象:它是一种特殊的类,用abstract关键字来修饰,抽象不能被实例化,抽象类中可以有方法体和属性,派生类继承抽象类必须实现里面的抽象成员,抽象类只能被继承一个
MVC和WebAPI
MVC:
视图:用户看到并与之交互的界面
模型:表示业务数据,并提供数据给视图
控制器:接受用户的输入并调用模型和视图去完成用户的需求
MVC完整流程:
1.所有的终端用户请求被发送到控制器
2.控制器依赖请求去选择加载到那个模型,并把模型附加到 对应的视图
3.附加了模型数据的最终视图做为响应发送给终端
MVC的路由选择:路由选择功能帮你定义一个URL规则,映射URL到控制器,例如输入/User/GetUser,它转向到User控制器,并且调用GetUser。这个通过Maproute方法来定义的
MVC好处:1.分离了关注点。后台代码被移到单独的类文件,我们可以最大限度的重复利用代码
\\\
API:用于构建可以从任何客户机访问的HTTP服务的框架。它是一种基于.net构建RESTful应用程序的理想平台
REST:是指一组架构约束条件和原则,如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构
API和MVC的区别:
1.MVC有视图,API没有
2.MVC是建立网站的一种架构,倾向于返回用户的页面请求,WebAPI倾向于返回用户数据
Session:是一种服务端的信息管理机制,它把这些文件信息以文件的形式存放到服务器的硬盘空间上。
Cookie:采用的是客户端的会话状态的一种存储机制,它是服务器在本地上储存的小段文本或者内存中的一段数据,并随意每个请求发送至同一个服务器
Token:称为令牌,一般通过MD5、SHA算法将密钥、公钥、时间戳等元素加密产生的加密字符串
区别:
1.Session是存放到服务器,Token放在客户端存储
2.Session不能作为跨域,它只能作用域一个域。Token可以跨域
工厂模式:
1.工厂方法:针对每种产品提供一个工厂类,通过不同的工厂实例化来创建不同的产品实例
优点:允许系统在不修改具体工厂角色的情况下增加新的产品
缺点:增加一个产品就需要增加一个类,增大了额外的开发量
2.抽象工厂:在工厂的基础上将未来可能需要修改的代码抽象出来,通过继承的方式让子类去做
好处:在工厂的前提下添加了接口,使得在客户端在不必指定具体类型的情况下,创建多个产品族中的对象
单例模式:保证一个类仅有一个实例,并提供一个该实例的全局访问点用于输出实例
懒汉式:在第一次被引用时将自己实例化
饿汉式:加载时就将自己实例化给调用者使用
区别:由于饿汉式,它是类一加载就实例化的对象,所以要提前占用系统资源。
然后懒汉式,又会面临这多线程访问的安全问题,需要做双重锁定这样的处理才可以保证安全
应用场景:
1.Web应用的配置对象的读取
2.数据库连接池的设置
3.窗体左侧栏菜单功能
观察者模式:是定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新
优点:1.在观察目标和观察者之间建立一个抽象的耦合
2.可以实现表示层和数据逻辑层的分离,并定义了稳定的消息更新传递机制,抽象了更新接口,使得可以有各种各样不同的表示层作为具体观察者角色
缺点:1.如果观察者和观察目标之前有循环依赖的话,观察目标会触发它们之间进行循环调用,可能导致系统崩溃
2.如果一个观察目标对象有很多直接和间接的观察者的话,将所有的观察者都通知会花费很多时间
集群与分布式
集群:是个物理形态,一般是物理集中、统一管理的,一个集群可能运行这一个或者多个分布式系统
分布式:是个工作方式,可以理解为分工工作,一个系统或者程序,只要运行在不同的机器上叶叫分布式
docker:是一个容器化平台,类似于一个五脏俱全的小的虚拟机,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何坏境中无缝运行
docker容器:包括应用程序及其所有依赖项,作为操作系统的独立进程运行
docker镜像:是docker容器的源代码,docker镜像用于创建容器,使用build命令创建镜像
常用命令:1.docker pull 拉取或者更新执行的镜像
2.docker push 将镜像推送至远程仓库
3.docker rm 删除容器
4.docker images 列出所有镜像
5.docker ps 列出所有容器
启动nginx容器,并挂载本地文件目录命令:-p(映射端口)
docker run -p 80:80
Redis:是一个持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化