一句话设计模式
摘要:创建型模式(5种)单例模式 public static readonly User Administrator=new User("admin");原型模型 INewObject newObj=protoTpe.Clone();工厂模式 IProduct product=Factory.GetPro
阅读全文
代理模式
摘要:通过引入一个代理对象(Proxy)来对实际的业务对象附加一定的逻辑——也就是说要不要调用真正的业务逻辑对象方法,由代理决定。 举个例子:CDN缓存其实就是一个代理——如果CDN网络中没有要访问的资源,那么回原站,如果有的话,就直接返回了。 看个例子吧。 1 假设我们有一个网络资源下载器,我们想要在下
阅读全文
中介模式
摘要:对象之间直接通信的话,比较乱套,所以找个中介来帮着传话。 用聊天室的例子再合适不过了。 public interface ChatRoom { void Register(User user); void SendMessage(User fromUser, string message); } p
阅读全文
桥接模式
摘要:桥接模式说的是本来面向接口编程,但是呢,我们定义接口的时候吧,要考虑单一职责,所以不能眉毛胡子一把抓。 另外呢,在有些场景下,如果一个类的变化维度比较多(比如绘图中有颜色和形状这两个维度),那么使用继承会导致类爆炸,所以呢,搭个桥,组装一下。 晕了吧,看看代码: public interface S
阅读全文
适配器模式
摘要:适配器模式(Adapter Pattern)说白了就是把一个接口实现类转换成另外一个接口对象。先看代码: 1 // 目标接口 2 public interface ITarget 3 { 4 void Request(); 5 } 6 7 // 原本不兼容的类 8 public class Adap
阅读全文
设计模式之状态模式
摘要:假设我们正在开发一个网络下载器应用,该应用有不同的下载状态,包括未下载状态、下载中状态、下载完成状态和下载失败状态。我们可以使用状态模式来管理下载器的状态和行为。 要是不用状态模式,这还真的就乱套了! 看下代码吧。 1 // 抽象状态类 - 下载状态 2 public abstract class
阅读全文
设计模式之装饰器模式
摘要:装饰器模式是一种结构型设计模式,它允许动态地为对象添加新的行为,同时不改变其结构。通过将对象包裹在一个装饰器中,可以在运行时为对象添加额外的功能。 在装饰器模式中,有四个主要角色: 抽象组件(Component):定义了被装饰对象的接口,是装饰器和被装饰对象的共同基类或接口。它声明了一组操作,这些操
阅读全文