自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 代理模式(Proxy Pattern)之虚拟代理

虚拟代理作为创建开销大的对象的代表。虚拟代理经常直到我们真正需要一个对象的时候才创建它。当对象在创建前和创建中时,有虚拟代理来扮演对象的替身。对象创建后,代理就会将请求直接委托给对象。场景:利用虚拟代理实现WINFORM加载URL图片,要求加载过程有文字提示并且不能另窗体保持可响应状态。//为代理创建一个接口 //代理接口 public interface IIc

2017-04-25 18:24:47 727

原创 代理模式(Proxy Pattern)之远程代理服务

代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。远程代理服务:Java使用RMI提供了客户辅助对象和服务辅助对象,为客户辅助对象创建和服务对象相同的方法。C#则采用Romting场景:承接状态模式中的糖果贩卖机,通过代理模式及Remoting实现远程监控机器的剩余糖果数量,机器位置和机器状态。//代理GumballMachine的类

2017-04-21 17:54:26 2464

原创 状态模式(State Pattern)

状态模式:通过改变对象内部的状态来帮助对象控制自己的行为。场景:用状态模式实现糖果自动售卖机,要求客户可以实施3个动作:投币,拨动曲柄,退币;5个状态:没有投币,已投币,糖果售罄,卖出糖果,中奖模式(中奖概率10%,中奖后推出2个糖果)。//状态接口 //状态接口类 public interface State { //投入硬币

2017-04-17 17:46:31 268

原创 组合模式(Composite Pattern)

组合模式:允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。场景:利用组合模式将菜单和其子项打印出来,菜单有三套早餐、午餐、咖啡,其中午餐下还有子菜单甜点。//抽象组件类 //组合中菜单及子项组件的抽象类 public abstract class MenuComponent { //

2017-04-14 11:04:56 245

原创 迭代器模式(Iterator Pattern)

迭代器模式:让客户遍历你的对象而又无法窥视你存储对象的方式场景:又一个早餐菜单和一个午餐菜单,使用迭代器模式将两个菜单打印出来。//菜单创建迭代器的接口 //类似工厂模式,子类需要实现创建枚举对象的方法 public interface Menu { IEnumerator createIterator(); }//菜单子项

2017-04-13 10:26:26 255

原创 模板模式(Template Pattern)

模板模式:别给我打电话,我会打给你。场景:使用模板模式实现泡茶和冲咖啡的两个类似行为。//抽象基类作为模板 //以作为咖啡因饮品作为茶与咖啡的泛化类 public abstract class CaffeineBeverage { //提供唯一的准备饮品的方法 public void prepareRecipe()

2017-04-12 10:32:47 281

原创 工厂模式(Factory Pattern)

工厂模式:通过让子类决定该穿件的对象是什么,来达到将对象创建的过程封装的目的。//抽象的产品 //工厂所生产的产品"披萨" public abstract class Pizza { protected string name; //产品生产工序 public virtual void prepare()

2017-04-11 13:52:46 161

原创 简单工厂(Simple Factory)

简单工厂:它不是一个设计模式,却是非常常用的编程习惯。

2017-03-30 17:06:27 268

原创 命令模式(Command Pattern)

命令模式:把方法调用封装起来抽象命令 //命令接口 public interface Command { //执行 void execute(); //撤销 void undo(); }具体命令 //开灯命令 public class LightOnCommand : Co

2017-03-30 11:54:43 216

原创 观察者模式(Observer Pattern)

观察者模式:有趣的事情发生时,可千万别错过了! //抽象主题 public interface Subject { //注册观察者 void registerObserver(Observer o); //移除观察者 void removeObserver(Observer o); /

2017-03-29 10:33:31 232

原创 装饰模式(Decorate Pattern)

装饰模式:给爱用继承的人一个全新的设计眼界以咖啡菜单作为实例:namespace 设计模式.装饰模式{ //饮料的基类 public abstract class Beverage { public String description = "Unkown Beverage"; public String getDescription

2017-03-28 15:39:32 313

原创 外观模式(Facede Pattern)

外观模式:提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。C#演示代码:namespace 设计模式.外观模式{ //高层接口类(家庭影院) public class HomeTheaterFacede { //一群子系统 Amplifier amplifier;

2017-03-28 14:58:04 604

原创 适配器模式(Adapter Pattern)

适配器模式:如何将一个方块放进一个圆洞中。namespace 设计模式.适配器模式.新接口{    //鸭子的接口    public interface Duck    {         void quack();         void fly();    }    public class MallardDuck : Duck

2017-03-27 15:03:45 203

原创 单件模式(Singleton Pattern)

单件模式(Singleton Pattern):用来创建独一无二的,只有一个实例的对象的入场券    //以“MyClass”作为单件类的类名,你可以根据自己的单件进行命名    public class MyClass    {        //单件类内部的唯一实例,volatile关键词确保当uniqueInstance变量被初始化成为Singleton实例时,多个线程正

2017-03-23 15:50:17 263

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除