张德长

导航

2022年4月2日 #

设计模式之:原型模式PrototypePattern的实现(浅克隆和深克隆)(浅表副本和深表副本)

摘要: 原型模式不是通过new生成新的对象,而使通过复制进行生成; 原型模式适用于相同类型的多个对象的生成; 原型模式分为两种:浅克隆/浅表副本(Shallow Clone)和深克隆/深表副本(Deep Clone); 浅克隆:Shallow Clone,只复制值类型变量,不复制引用类型变量的克隆;(只复制 阅读全文

posted @ 2022-04-02 23:56 张德长 阅读(101) 评论(0) 推荐(0) 编辑

设计模式之:建造者模式BuilderPattern的实现

摘要: 建造者模式相较于工厂模式,用于创建复杂的对象; 使用的技术:继承、抽象类、多态、配置文件、反射; 建造者模式的设计原则: 面向抽象类编程,符合依赖倒置原则; 通过配置文件生成具体建造者,替代抽象建造者,符合里氏替换原则; 不同的建造者建造不同的角色,符合单一职责原则; 客户端只需调用建造者生成角色对 阅读全文

posted @ 2022-04-02 18:36 张德长 阅读(74) 评论(0) 推荐(0) 编辑

设计模式之:三种工厂模式的对比SimpleFactoryPattern、FactoryMethodPattern、AbstractFactoryPattern

摘要: 工厂模式对比: 简单工厂 SimpleFactoryPattern 工厂方法 FactoryMethodPattern 抽象工厂 AbstractFactoryPattern 工厂数量 一个工厂 多个工厂 多个工厂 工厂数量计算 1 工厂数=产品数 工厂数=产品系列数 单个工厂创建产品数 所有产品 阅读全文

posted @ 2022-04-02 16:32 张德长 阅读(81) 评论(0) 推荐(0) 编辑

设计模式之:抽象工厂模式AbstractFactoryPattern的实现

摘要: 相比于工厂模式,抽象工厂模式的每个工厂可以创建产品系列,而不是一个产品; 抽象工厂用到的技术:接口、多态、配置文件、反射; 抽象工厂模式的设计原则: 实现客户端创建产品和使用产品的分离,客户端无须了解创建的细节,符合迪米特法则; 客户端面向接口定义产品,符合依赖倒置原则; 客户端面向接口定义工厂,而 阅读全文

posted @ 2022-04-02 16:08 张德长 阅读(103) 评论(0) 推荐(0) 编辑

设计模式之:工厂方法模式FactoryMethodPattern的实现

摘要: 本例用到了配置文件、接口、反射、多态; 满足的设计原则: 通过工厂,实现创建对象和使用对象的分离,实现松耦合,满足迪米特法则; 通过配置文件指定创建对象类型,而不需更改源代码,满足开闭原则; 容易实现功能扩展,只需添加新的Logger实现类和新的Factory实现类即可,无须更改源代码,满足开闭原则 阅读全文

posted @ 2022-04-02 13:46 张德长 阅读(170) 评论(0) 推荐(0) 编辑

设计模式之简单工厂SimpleFactory的实现(配置文件)

摘要: <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="chartType" value="histogram" /> </appSettings> </configuration> public 阅读全文

posted @ 2022-04-02 12:55 张德长 阅读(56) 评论(0) 推荐(0) 编辑

设计模式之简单工厂SimpleFactory的实现

摘要: internal interface Chart { void Display(); } internal class LineChart : Chart { public LineChart() { Console.WriteLine("创建折线图"); } public void Display 阅读全文

posted @ 2022-04-02 12:15 张德长 阅读(32) 评论(0) 推荐(0) 编辑