随笔分类 - 大话设计模式
第 9 章 —— 原型模式
摘要:9.3 原型模式 原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。 抽象原型类: 具体原型类: 客户端代码: 一般在初始化的信息不发生变化的情况下,克隆是最好的办法。这既隐藏了对象创建的细
阅读全文
第 7 章 —— 代理模式
摘要:7.4 符合实际的代码 被追求者类: 代理接口:(定义代理的功能) 追求者类(需要实现“送礼物”接口): 代理类: 客户端代码: 现在,娇娇不认识追求她的人,但却可以通过代理人得到礼物,而代理人不仅认识娇娇,同时也认识追求者。 7.5 代理模式 代理模式,为其他对象提供一种代理以控制对这个对象的访问
阅读全文
第 6 章 —— 装饰模式
摘要:6.6 装扮模式总结 装饰模式把每个要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象,因此,当需要执行特殊行为时,客户端代码就可以在运行时根据需要有选择地、按顺序地使用装饰功能包装对象了。 装扮模式是为已有功能动态地添加更多功能的一种方式。 装饰模式的优点: 有效地把类的核心职责和装饰功能
阅读全文
面向对象总结
摘要:1. 为什么要用抽象类(abstract)? 因为希望它能继承,但又不希望它能实例化(比如“动物”类实例化是没有意义的)。 2. 构造函数私有化 不希望在其他类中通过 new 实例化一个实例(有些根本不能实例化,比如 Math 类;有些是类中专门提供了返回类对象的公有方法,比如单例模式) 3. 静态
阅读全文
第 21 章 —— 单例模式
摘要:(复制粘贴是最容易的编程,但也是最没有价值的编程。复制粘贴就会造成重复,当需求变化或有 Bug 时就需要改多个地方) 把声明的工作放到类的全局变量中完成(private FormToolbox ftb;),这样就可以在方法中判断这个变量是否实例化过了。 21.3 是否实例化是自己的责任 单例类是否实
阅读全文
设计模式之—— 设计原则 (节选自:《大话设计模式》)
摘要:3.4 单一职责原则 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。 这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。 软件设计真正要做的许多内容就是发现
阅读全文
第 2 章 商场促销——策略模式 (节选自:《大话设计模式》)
摘要:面向对象的编程并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。 2.3 简单工厂实现 现金收费抽象类: 正常收费子类: 打折收费子类: 返利收费子类: 现金收费工厂类:(收费对象生成工厂) 客户端程序关键代码: 简单工厂模式只是解决对象的创建问题,
阅读全文
1.11 UML 类图(多看多用就熟悉了)(节选自:《大话设计模式》)
摘要:类:用矩形框表示(类图分三层) 第一层显示类的名称;(如果是抽象类,就用斜体显示) 第二层是类的特性,通常就是字段和属性; 第三层是类的操作,通常是方法或行为。 (注意前面的符号,“+” 表示 public,“-” 表示 private,“#” 表示 protected) 接口:(接口有两种表示方法
阅读全文
第一章 —— 简单工厂模式(节选自:《大话设计模式》)
摘要:1.4 面向对象编程 所有编程初学者碰到问题都会直觉地用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程。这其实是用计算机的方式去思考,比如计算器这个程序:先要求输入两个数和运算符号,然后根据运算符号判断选择如何运算,得到结果,这本身没有错,但这样的思维却使得我们的程序只为满足实现当前的
阅读全文
附录A——面向对象基础
摘要:在学习设计模式之前,C#语言中一些基本的面向对象的知识还是应该具备的,比如像继承、多态,接口、抽象类,集合、泛型等。 A.2 类与实例 什么是对象? 一切事物(事和物)都是对象,对象就是可以看到、感觉到、听到、触摸到、尝到、或闻到的东西。 准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来
阅读全文
浙公网安备 33010602011771号