
设计模式
设计模式专题
LDGjayli
这个作者很懒,什么都没留下…
展开
-
C#23种设计模式综述和软件设计6大原则
C#23种设计模式综述和软件设计6大原则一. 软件设计6大原则二. 23种设计模式(1)什么是设计模式(2)23种分类及作用特点(3)UML中的类图原创 2020-08-11 09:54:11 · 979 阅读 · 0 评论 -
C#设计模式之【创建型设计模式:工厂模式】
C#设计模式之【创建型设计模式:工厂模式】一. 简单工厂(非设计模式)二. 工厂方法三. 抽象工厂四. 三种工厂模式的使用选择原创 2020-08-11 09:54:21 · 683 阅读 · 0 评论 -
C#设计模式之【创建型设计模式:单例模式】
C#设计模式之【创建型设计模式:单例模式】一.单例模式简述二.几种实现方式1. 非线程安全2. 线程安全3. 静态构造函数4. 静态字段一.单例模式简述单例模式:保证进程中,某个类只有一个实例,并提供一个访问它的全局访问点。单例可以避免重复创建,但是也会常驻内存,而且他的变量并不是线程安全,主要应对一些特殊情况,比如数据库连接池(内置了资源) 全局唯一号码生成器等,除非是真的有必要,否则不要单例二.几种实现方式1. 非线程安全2. 线程安全3. 静态构造函数4. 静态字段...原创 2020-08-11 16:30:34 · 427 阅读 · 0 评论 -
C#设计模式之【创建型设计模式:原型模式】
C#设计模式之【创建型设计模式:原型模式】一. 原型模式简述二. 代码示例一. 原型模式简述 原型模式(Prototype)用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。你也可以认为原型模式是单例的基础上升级了一下,把对象从内存层面复制了一下,然后返回的是个新对象。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。 UML图:二. 代码示例...原创 2020-08-12 11:20:47 · 366 阅读 · 0 评论 -
C#设计模式之【创建型设计模式:建造者模式】
C#设计模式之【创建型设计模式:建造者模式】一. 建造者模式简述二. 代码示例三. 总结一. 建造者模式简述 概括: 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 案例: 汽车企业在建造汽车的过程中,会有各种各样的车型组合,例如奥迪,有A3,A6,A8等,它们都有不同的发动机,变速箱等配置组合。使用建造者模式可以建造出不同组合的奥迪车型类。 注意: 建造者模式和工厂模式非常相似,建造者模式重点在于汽车的组装过程,而工厂方法模式重点在于汽车的创建过程原创 2020-08-13 08:46:10 · 313 阅读 · 0 评论 -
C#设计模式之【结构型设计模式:适配器模式】
C#设计模式之【结构型设计模式:适配器模式】一. 适配器模式简述二.代码示例三.总结一. 适配器模式简述 顾名思义,适配器就是所谓的转接口,比如说各大商场的共享充电宝,它为了适应多种手机的接口,专门做了一根三种不同插口的数据线,有iPhone口,普通安卓口,typec的。我们也可以理解这个也是适配器的一种。 在撸代码的思想中,适配器模式可以将一个类的接口不被修改的情况下转换成客户希望的另一种接口,让原本不兼容的两个类能够一起工作。 MUL图:二.代码示例 场景: 假设在项目开发的过程中,原创 2020-08-13 10:46:03 · 329 阅读 · 0 评论 -
C#设计模式之【结构型设计模式:代理模式】
C#设计模式之【结构型设计模式:代理模式】一. 代理模式简述二. 代码示例三. 总结一. 代理模式简述 意图: 为其他对象提供一种代理以控制对这个对象的访问。 主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。 UML图:二. 代码示例 比如我们生活中的代购,原创 2020-08-13 16:05:42 · 243 阅读 · 0 评论 -
C#设计模式之【结构型设计模式:装饰器模式】
C#设计模式之【结构型设计模式:装饰器模式】一.装饰器模式简述二.代码示例三.总结一.装饰器模式简述 概念: 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 就增加功能而言,装饰器模式比直接生成子类更加灵活。装饰器模式使用继承+组合的方式解决问题。 下面我们以给汽车改装的例子进行代码示例,假如我新买了一部奥迪A8,我想给它进行改装发动机(必选项,先改装),改轮毂、车身喷漆、改排原创 2020-08-14 14:49:56 · 366 阅读 · 0 评论 -
C#设计模式之【结构型设计模式:外观模式】
C#设计模式之【结构型设计模式:外观模式】一.外观模式简述二. 代码示例三. 总结一.外观模式简述 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这个没什么好说的把,比如我们用的很多框架,这些框架都提供一套接口给开发者调用,开发者不需要知道这个框架的具体实现有多复杂,只需要知道调用接口即可。二. 代码示例—非要举例的话—有空再写三. 总结...原创 2020-08-14 16:11:47 · 183 阅读 · 0 评论 -
C#设计模式之【结构型设计模式:桥接模式】
C#设计模式之【结构型设计模式:桥接模式】一.桥接模式简述二. 代码实现三. 总结一.桥接模式简述 桥接模式是一种很实用的结构型设计模式,如果系统中的某各类存在多个独立变化的纬度,通过桥接模式可以将这几个纬度分离出来,它是将抽象部分和实现部分解耦,使得他们都能够独立变化。 举例:假设现在有奥迪 A4,A6,A8三款车型,每款车型都有”乞丐版“、”普通版“、”豪华版“(实际上不止)如果按照传统的设计,应该为一个BaseCar抽象类,然后会有9种子类继承BaseCar。 而实际上奥迪车型和车型版原创 2020-08-17 16:20:29 · 426 阅读 · 1 评论 -
C#设计模式之【结构型设计模式:享元模式】
C#设计模式之【结构型设计模式:享元模式】享元模式适用情形:◊ 一个应用程序使用了大量的对象◊ 完全由于使用大量的对象,造成很大的存储开销◊ 对象的大多数状态都可变为外部状态◊ 如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象◊ 应用程序不依赖对象标识享元模式特点:◊ 享元模式的核心是把大量共享的对象收集在一起使用简单工厂模式进行管理,避免由于大量的小对象导致系统内存过度消耗。◊ 享元当重复对象较多时有很好的空间复杂度原创 2020-08-18 09:52:39 · 377 阅读 · 0 评论 -
C#设计模式之【结构型设计模式:组合模式】
C#设计模式之【结构型设计模式:组合模式】组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。原创 2020-08-18 16:31:52 · 473 阅读 · 0 评论