![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
luxin10
这个作者很懒,什么都没留下…
展开
-
外观模式
为子系统中的一组接口提供一个一致的调用接口,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用;实现代码: internal class SystemOne { public void MethodOne() { Console.WriteLine("系统一的方法"); } }原创 2011-11-24 12:31:33 · 459 阅读 · 0 评论 -
观察者模式
观察者模式又称为发布订阅模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够够自动更新自己. 观察者模式结构图: Subject实现代码:using System;namespace ConsoleApplication2{ abstract cla原创 2011-12-15 09:38:05 · 628 阅读 · 0 评论 -
工厂方法模式
在使用面向对象编程时,我们都说遵循一个基本准则------开放封闭原则;即对于软件实体(类、模块、函数等)应该可以扩展,但是不能修改,也就是对于扩展是开放的,对于更改是封闭的; 依据这个原则,我们接着上面的可乐说事儿,此时市场上出现了第三种可乐:非常可乐;我们应该怎么修改贩卖机的程序呢? 修改起来也不复杂,我们看看修改的代码: 首先在子类原创 2011-11-10 12:10:30 · 514 阅读 · 0 评论 -
简单工厂模式
简单工厂模式,用一句话概括其特性:使用子类继承并重写父类的方法,在实例化时,通过用户输入的参数,使用父类的实例化子类方法,返回相对应的子类,并访问该子类的属性及方法; 打个比方,我们去超市买可乐,有的人喜欢百事可乐,有的人喜欢可口可乐,那我们买可乐的过程用代码表示出来是什么样的?看看下面的代码: /// /// 可口可乐 /// pub原创 2011-11-10 11:46:07 · 886 阅读 · 0 评论 -
原型模式
原型模式:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象; 以下为原型模式的UML图:运行模式实际就是通过一个对象再创建另一个可定制的对象,而且不需要知道任何创建的细节;实现代码如下:abstract class ProtoType { private string id; public Pr原创 2011-11-22 11:01:32 · 417 阅读 · 0 评论 -
建造者模式
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示; 使用构建者模式,又称生成器模式,用户就只需要指定 需要建造的类型,就可以得到他们,而具体的建造过程和细节就不需要知道了;实现代码:/// /// 具体产品类 /// public class Product { IList parts原创 2011-11-24 12:35:49 · 366 阅读 · 0 评论 -
装饰模式
Decorator:动态给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活;以下为装饰模式的UML图:1. Component是定义一个对象接口,可以给这些对象动态添加职责;2. ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责;3. Decorator是装饰抽原创 2011-11-22 10:59:27 · 416 阅读 · 0 评论 -
策略模式
策略模式:它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户; 接着上面可乐的话题说下去吧,现在小乙开了个冷饮店,可以选择三种可乐,在最初阶段,他不熟悉经常来得客户的口味,所以每次客户来都得先说需要什么可乐,小乙然后将可乐送出,下面看看这个过程的实现代码: /// /// 可乐基类 ///原创 2011-11-16 12:28:16 · 510 阅读 · 0 评论 -
模板模式
定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可冲定义该算法的某些特定步骤;模板方法模式是通过把不变行为搬到父类,去除子类中的重复代码: public abstract class AbstractClass { public abstract void OperationA(); pu原创 2011-11-22 11:04:20 · 486 阅读 · 0 评论 -
适配器模式(adapter)
适配器模式(adapter):将一个类的接口转换为客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配.适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况. 适配器模式结构原创 2011-12-27 09:32:53 · 541 阅读 · 0 评论