C#设计模式
振哥在,世界充满爱!
计划+坚持!+思考
展开
-
面向对象设计原则
今天整理了一下面向对象设计的七种设计原则,整理了以下学习笔记。1、 单一职责原则Single ResponsibilityPrinciple,SRP 一个对象应该只包含单一的职责,并且该职责被完整的封装在一个类中。(就一个类而言,应该仅由一个引起它变化的原因)。 单一职责原则是实现高内聚、低耦合的指导方针,是最简单、却最难运用的原则,需要设计人员发现类的不同职责并将其分离原创 2016-05-26 21:51:51 · 197 阅读 · 0 评论 -
C#设计模式—组合模式
一、组合模式的定义 组合多个对象形成树形结构以表示具有部分——整体关系的层次结构。二、说明 组合模式关注那些包含叶子构件和容器构件的结构以及它们的组织形式,在叶子结构中不包含成员对象,而容器构件中包含成员对象,这些对象通过递归组合可构成一个树形结构。 由于容器对象和叶子对象在功能上存在区别,因此在使用这些对象的代码中必须有区别的对待容器对象和叶子对象。三、组合原创 2016-06-18 12:27:31 · 344 阅读 · 0 评论 -
C#设计模式—桥接模式
一、定义: 桥接模式将抽象部分与它的实现部分解耦,使得两者都能独立变化。 说明:桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关联取代了传统的多层继承,将类之间的静态继承关系转换为动态的对象组合关系,提高系统的灵活性,易于扩展,有效控制系统中类的个数。 桥接模式又称为柄体模式或接口模式。二、桥接模式的结构 桥接模式包含四个部分:1)抽象类(A原创 2016-06-15 21:14:24 · 486 阅读 · 0 评论 -
C#设计模式—适配器模式
从本节开始描述结构型设计模式。一、结构型模式(StructuralPattern):(1)关注将现有类和对象组织在一起形成更强大的结构;(2)结构型模式可分为两类:类结构型模式和对象结构型模式。 (3)类结构型模式:关心的是类的组合,形成更大的系统,一般只存在继承关系和实现关系。(4)对象结构型模式:关心的是类和对象的组合,通过关联关系在一个类中定义另一个类的实例对象,然后通过原创 2016-06-14 21:27:58 · 306 阅读 · 0 评论 -
C#设计模式—建造者模式
一、建造者模式定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 说明:建造模式是一种对象创建型模式,它将客户端与包含多个部件的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可。二、建造者模式结构 1)抽象建造者:为创建一个产品对象的各个部件指定抽象接口,该接口中一般包含两个方法:原创 2016-06-10 21:39:39 · 1380 阅读 · 2 评论 -
C#设计模式—访问者模式
1、访问者模式定义 表示一个作用于其对象结构中的各个元素的操作。 访问者模式是一种对象行为型模式,它为操作存储不同的类型元素的对象结构提供了一种解决方案,用户可以对不同类型的元素施加不同的操作。 访问者模式常常和组合模式一起使用。2、访问者模式结构 该模式包含五种角色: 1)抽象访问者类(Visitor):为对象结构中的每一个元素类声明一个访问原创 2016-06-26 20:36:54 · 551 阅读 · 0 评论 -
C#设计模式—策略模式
1、策略模式定义 策略模式定义一系列的算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法可以独立于使用它的客户变化。 特点:策略模式用于算法的自由切换和扩展。实现了算法定义和算法使用的分离,它通过继承和多态的机制实现对算法的使用和管理。2、策略模式的结构 策略模式包含三个角色: 1)环境类(Context):是使用算法的角色,它在解决某个问原创 2016-06-26 19:44:50 · 397 阅读 · 0 评论 -
C#设计模式—观察者模式
1、观察者模式定义 定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象都得到通知并被自动更新。属于对象行为模式。2、观察者模式 1)目标类(Subject):指的是被观察的对象,定义一个观察者的集合。一个观察目标可以被多个观察者观察。目标提供一系列方法来增加和删除观察者对象。目标类可以是接口类,也可以是抽象了或具体类。 2)具体目标类原创 2016-06-26 19:12:43 · 403 阅读 · 0 评论 -
C#设计模式—抽象工厂模式
一、相关知识 1)产品等级结构:也称为继承结构。 2)产品族:由同一个工厂生产的,位于不同产品等级结构中的一组产品。二、抽象工厂模式定义 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。 区别于工厂方法模式:抽象工厂模式中的具体工厂不只是创建一种产品,而是负责创建一族产品。三、抽象工厂模式的结构 1)抽象工厂:一组用于创原创 2016-06-10 00:18:08 · 281 阅读 · 0 评论 -
Q2、C#单例模式
要求:设计一个类,只能生产该类的一个实例。 C#单例模式(Singleton):不是根据客户程序调用生成一个新的实例,而是控制某个类型的实例数量,保证唯一性。关键在于整个程序的生命周期中,任何时刻被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点。 接下来将会介绍五种单例模式的设计。一、单线程下的单例模式(经典模式)public sealed class原创 2016-05-17 08:18:33 · 249 阅读 · 0 评论 -
设计模式—工厂方法模式
一、工厂方法模式定义定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式又名“工厂模式”“虚拟构造器模式”“多态工厂模式”。二、结构工厂方法模式包含四种角色:1) Product(抽象产品):是定义产品的接口,是工厂方法模式创建对象的超类型,是产品对象的公共父类。2) ConcreteProduct(具体产品原创 2016-06-04 09:47:50 · 314 阅读 · 0 评论 -
C#设计模式—解释器模式
1、解释器模式定义给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。说明:解释器模式设计到文法规则和抽象语法树。2、解释器模式的结构解释器模式包含四个角色:1)抽象表达式(AbstractExpress):声明抽象的解释操作,它是所有终结符表达式和非终结符表达式的公共父类。2)终结符表达式(Termina原创 2016-06-24 22:18:12 · 1274 阅读 · 0 评论 -
C#设计模式—代理模式
1、代理模式的定义 给某一个对象提供一个代理或占位符,并由代理对象来控制对源对象的访问。 说明:当用户无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象需要实现相同的接口。根据代理类使用的目的不同,可以将代理区分为:保护代理,远程代理,虚拟代理,缓冲代理等。2、代理模式的结构 代理模式的实现包含原创 2016-06-24 22:16:28 · 413 阅读 · 0 评论 -
设计模式—简单工厂模式
简单工厂模式不属于GoF的23种经典设计模式。一、定义定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。在C#语言中,创建对象的四种方式:1) 使用new关键字直接创建对象;2) 使用反射机制创建对象;3) 使用克隆方法创建对象;4) 通过工厂类创建对象。二、结构(1)Factory(工厂类或工厂角色)工厂类是简原创 2016-05-31 20:17:46 · 308 阅读 · 0 评论 -
C#设计模式—装饰模式
一、装饰模式定义 动态地给一个对象增加一些额外的职责,就扩展功能而言,装饰模式提供了一种比使用子类更加灵活的替代方案。 说明:装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。 在装饰类中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩展原有类的功能。二、装饰模式的结构1)抽象原创 2016-06-18 20:09:49 · 441 阅读 · 0 评论