设计模式
Fatestay_DC
这个作者很懒,什么都没留下…
展开
-
简单工厂模式
class Namer { public string fName, lName; public void GetLName() { Console.WriteLine(lName); } public void GetFName() { Console原创 2015-08-22 12:00:39 · 429 阅读 · 0 评论 -
命令模式
// ConsoleApplication19.cpp : Defines the entry point for the console application.//#include "stdafx.h"/*是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execute方法用来执行命令*/class Command{public: virtual void原创 2015-12-23 08:33:08 · 379 阅读 · 0 评论 -
观察者模式
双向耦合的例子class Subject { private List<Observer> observerList = new List<Observer>(); private string notifyContent; public void AddObserver(Observer o) { obse原创 2015-12-04 11:12:48 · 524 阅读 · 0 评论 -
备忘录模式
// ConsoleApplication19.cpp : Defines the entry point for the console application.//#include "stdafx.h"//C++后面使用的类要先声明?/*负责存储GameRole对象的内部状态,并可防止GameRole以外的其他对象访问备忘录Memento。备忘录有两个接口,Caretaker只能看见备忘录的原创 2015-12-21 13:05:07 · 493 阅读 · 0 评论 -
工厂方法
class Product{public: virtual void Show()=0;};class ProductA:public Product{public: void Show() { cout<<"SHowA"<<endl; }};class ProductB:public Product{public: void原创 2015-12-21 08:30:54 · 485 阅读 · 0 评论 -
C++(简单工厂)
// ConsoleApplication18.cpp : Defines the entry point for the console application.//#include "stdafx.h"typedef enum Type{ TypeA, TypeB, TypeC,} ProductType;class Product{public: vo原创 2015-12-18 08:27:54 · 651 阅读 · 0 评论 -
状态模式
《重构》一书中第一章的例子中,讲到了用状态模式代替分支语句的判断。觉得有必要复习一下状态模式,状态模式解决的是当控制一个对象状态转换的条件表达式过于复杂的情况。把状态的逻辑判断转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简单化。当一个对象的行为取决于它的状态,并且必须在运行时根据状态改变它的行为时,就可以考虑使用状态模式。using System;using System.Colle原创 2015-12-01 08:45:03 · 484 阅读 · 0 评论 -
模板方法
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。因此模板方法使得子类可以在不改变一个算法的结构的情况下重新定义该算法的某些特定变量。优点:把不变行为搬移到超类,去除子类中的重复代码。C#实现using System;using System.Collections.Generic;using System.Linq;using System.Text;using System原创 2015-12-09 08:40:47 · 306 阅读 · 0 评论 -
工厂方法模式
简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的钻则条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。 工厂方法模式,定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到子类。工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单的内部逻辑判断转移到了客户端代码来进行,如原创 2015-08-22 14:52:46 · 594 阅读 · 0 评论 -
适配器模式
适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ap{ p原创 2015-09-06 08:18:20 · 459 阅读 · 0 评论 -
原型模式
原型模式:用原型实例指定创建对象的种类,并且通过这些原型创建新的对象。也就是活从一个对象再创建另外一个可定制的对象,并且不许知道任何创建的细节。 abstract class Prototype { private string id; public Prototype(string id) { this.id = id;原创 2015-08-29 17:04:10 · 627 阅读 · 0 评论 -
建造者模式
建造者模式:将一个复杂的对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式的好处就是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以如果要改变一个产品内部的表示,只需要再定义一个具体的建造者就可以了。namespace bp{ class Product { List<string> parts = new List<st原创 2015-08-27 08:49:06 · 854 阅读 · 0 评论 -
单例模式
单例模式 保证一个类只有一个实例,并提供一个访问他的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但他不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存他的唯一实例。这个类可以保证没有其他实例被创建,并且他可以提供了一个访问该实例的方法。class Singleton { private static Singleton instance;原创 2015-08-25 09:31:59 · 518 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定具体的类。 抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽象类,而抽象工厂原创 2015-08-22 23:14:17 · 415 阅读 · 0 评论 -
设计模式精读
外观模式: 从原有系统中抽出一些接口(也可以自己扩展)形成一个新的接口(外观类), 供客户使用 减少了客户与原系统内部的耦合,只需要与外观类接口发生耦合即可 适配器模式:创建一个拥有所需接口的新类,然后包装原来类的方法,达到适配的效果 桥接模式:抽象变化 实现也变化 找到变化点并进行封装 少用继承多用组合防止类爆炸 将实现部分封装在一个抽象类中 在被实现的抽象部分积累中包含一个实现部分基类的句原创 2016-10-12 10:34:02 · 301 阅读 · 0 评论