摘要:桥接模式 将抽象部分与实现部分分离,使它们都可以独立的变化 定义接口和抽象类 namespace 桥接模式 { // 实现接口 public interface IDraw { void DrawCircle(int radius, int x, int y); } // 抽象部分 构造时注入接口
阅读全文
摘要:适配器模式 作为两个不兼容的接口之间的桥梁 结合了两个独立接口的功能 例如实际中有个两孔的插座,现在需要有个三孔的插口,如果不直接在两孔的class修改,就需要加一个适配class来处理 namespace 适配器模式 { public class TwoHole { public void Two
阅读全文
摘要:原型模式 Prototype Pattern 用于创建重复的对象,同时又能保证性能。 当需要创建一个与已有对象类似的对象,或者当创建对象的成本比克隆更高时,使用原型模式 通过实现Clone方式生成新的实例,根据需要选择深copy和浅copy namespace 原型模式 { /// <summary
阅读全文
摘要:建造者模式 在工厂模式中,关注的是谁创建了这个产品,在建造者模式中,这个产品会有多个复杂工序,例如组装电脑,提供了一个builder类来管理这个组装过程 // 抽象builder namespace 建造者模式 { public class Computar { public string CPU
阅读全文
摘要:抽象工厂模式 Abstract Factory Pattern 在简单工厂之后变化得到了工厂方法模式(A工厂生产商品a,B工厂生产商品b),不同的工厂生产不同的商品还有其他变化,现在有一下场景工厂A可以生产商品a和b,工厂B也可以生产商品a和b,这种情况需要在工厂中再处理一下 // 抽象产品 nam
阅读全文
摘要:工厂方法模式 在简单工厂模式中,只有唯一的一个factory来判断生成不一样的product,但是实际中可能会出现不同的factory来生产不同的商品。工厂方法模式是简单工厂的变化 // 抽象商品和工厂 namespace 工厂方法模式 { public abstract class Factory
阅读全文
摘要:简单工厂模式 Simple Factory Pattern Simple Factory模式实际上不是GoF 23个设计模式中的一员 在工厂类中创建具体对象 namespace 简单工厂模式 { // 抽象产品 public abstract class Product { } // 产品:phon
阅读全文
摘要:单例模式 它只有一个实例 向外提供访问点 考虑到多线程情况下创建实例 分类 懒汉式,线程不安全 不加锁 懒汉式,线程安全 加锁 饿汉式 不加锁,使用静态变量,加载时就初始化,浪费内存 双检锁/双重校验锁 双锁机制,安全且在多线程情况下能保持高性能 using System; namespace 单例
阅读全文