随笔分类 -  设计模式

摘要:定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 适用场景:建造者模式是在当创建复杂对象的算法,应该独立于该对象的组成部分以及它们的装配方式时适用的模式。 示例代码: /// <summary> /// 建造者 /// </summary> abstract clas 阅读全文
posted @ 2023-03-04 23:44 KevinSteven 阅读(28) 评论(0) 推荐(0) 编辑
摘要:定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 应用场景: 1、在设计初期阶段,应该要有意识的将不同的两个层分离。 2.在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂。 3.在维护一个遗留的大型系统时,可能这个系统已经非常难以维 阅读全文
posted @ 2023-03-04 23:07 KevinSteven 阅读(17) 评论(0) 推荐(0) 编辑
摘要:定义:代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问 应用: 1.远程代理,也就是为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。 2.虚拟代表,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象 3.完全代理,用来控制 阅读全文
posted @ 2023-03-04 22:21 KevinSteven 阅读(256) 评论(0) 推荐(0) 编辑
摘要:/// <summary> /// 1现金收费抽象类 /// </summary> abstract class CashSuper { public abstract double acceptCash(double money); } /// <summary> /// 2返利收费子类 /// 阅读全文
posted @ 2022-04-02 10:36 KevinSteven 阅读(50) 评论(0) 推荐(0) 编辑
摘要:class Program { static void Main(string[] args) { #region v0.1 //ConcretePrototypel pl = new ConcretePrototypel("1"); //ConcretePrototypel c1 = (Concr 阅读全文
posted @ 2022-04-02 10:18 KevinSteven 阅读(34) 评论(0) 推荐(0) 编辑
摘要:class Program { static void Main(string[] args) { Person xc = new Person("小菜"); Console.WriteLine("\n第一种装扮:"); Sneakers pqx = new Sneakers(); BigTrous 阅读全文
posted @ 2022-04-02 10:02 KevinSteven 阅读(49) 评论(0) 推荐(0) 编辑
摘要:定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方式模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。当不变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我 阅读全文
posted @ 2022-04-02 09:39 KevinSteven 阅读(208) 评论(0) 推荐(0) 编辑
摘要:static void Main(string[] args) { Console.WriteLine("NumberA:"); string NumberA = Console.ReadLine(); Console.WriteLine("NumberB:"); string NumberB = 阅读全文
posted @ 2022-04-02 09:33 KevinSteven 阅读(69) 评论(0) 推荐(0) 编辑