1. 大话设计模式 学习笔记
梦幻DUO
游戏开发爱好者
展开
-
UML 类图基本图示法
UML类图基本图示法在《大话设计模式》中看到这样一幅图片,非常简洁生动的说明各种UML类图基本图示法,拿来和大家分享一下: 本章的最后一段话也很有意思,也和大家分享一下: 编程是一门技术,更加是一门艺术,不能只满足于写完代码运行结果正确就完事,时常考虑如何让代码更加简练,更容易维护,容易扩展和复用,只有这样才可以真正得到提高。写出优雅的代码真的是一种很爽的事情。UML类图也不是一学就会的,需要原创 2015-08-01 09:54:30 · 1333 阅读 · 0 评论 -
设计模式 外观模式
外观模式1. 外观模式是什么 想想我们小时候玩的四驱车,里面的构造很复杂,马达,舵机,电池组等等,而我们控制它却非常简单,只要打开电池开关,他就可以跑。我们其实不用知道它里面是如何工作,只要知道拨动开关它就可以工作就行了,这个开关其实就四驱车给我们的一个友好的组件,使得我们可以很方便的控制它。外观模式其实定义了一个高层接口,该接口为子系统中的一组接口提供一个一致的界面,使得这一子系统更加容易使用原创 2015-08-04 09:03:31 · 621 阅读 · 0 评论 -
设计模式 装饰模式
装饰模式1. 什么是装饰模式 在不必改变原类文件和使用继承的情况下,动态地扩展一个对 象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 2. 何时适合使用装饰模式? 需要扩展一个类的功能,或给一个类添加附加职责。 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。 需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变的不现实。原创 2015-08-02 15:29:00 · 662 阅读 · 0 评论 -
设计模式 迪米特法则
迪米特法则1. 迪米特法则是什么? 迪米特法则(Law of Demeter)又叫作最少知道原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。 2. 个人心得 其实迪米特法则没有大家说的那么复杂,我们做到两个规则就是不违背迪米特法则: 1、不在类的成员函数里面使用非本类或友元类,因为在类的成员函数里面依原创 2015-08-03 19:33:20 · 566 阅读 · 0 评论 -
设计模式 代理模式
代理模式1. 代理模式是什么? 在GOF的《设计模式:可复用面向对象软件的基础》一书中对代理模式是这样说的:为其他对象提供一种代理以控制对这个对象的访问。 使用场合: 远程代理为一个对象在不同的地址空间提供局部代理; 虚代理根据需求创建开销很大的对象; 保护代理控制原始对象的访问;保护代理用于对象应该有不同的访问权限的时候; 智能引用取代了简单的指针,它在访问对原创 2015-08-02 19:21:12 · 598 阅读 · 0 评论 -
设计模式 原型模式与C++ & 设计模式的思考
关于原型模式与C++的个人想法 看了原型模式,似乎原型模式在C++就是拷贝构造函数。不知道为什么网上还能有人写出原型模式的C++实现,然后在代码中的原型模式拷贝操作仅仅是返回拷贝构造函数的结果?加一层操作这样做有什么意义?真是令我百思不得其解。因为Java中并没有深拷贝的操作,所以原型模式对于Java还是有一些用处的。但我认为C++中拷贝构造函数已经是原型模式的一种实现,用C++去实现原型模式就原创 2015-08-03 14:01:02 · 588 阅读 · 0 评论 -
设计模式 依赖倒转原则 & 里氏代换原则
依赖倒转原则 & 里氏代换原则依赖倒置原则 A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。 B.抽象不应该依赖于具体,具体应该依赖于抽象。 所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。 里氏代换原则 里原创 2015-08-01 13:43:41 · 841 阅读 · 0 评论 -
设计模式 模板方法模式
模板方法模式1. 模板方法模式是什么 定义了一个操作中的算法的骨架,而将部分步骤的实现在子类中完成。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 2. 模板方法UML图3. 个人感悟 AbstractClass中的TemplateMethod可以决定算法的执行步骤(包括通用的步骤和不同算法特有的步骤),而具体的算法可以又不同的子类去定义,因此达到代码重用。原创 2015-08-03 14:30:11 · 518 阅读 · 0 评论 -
设计模式 工厂方法模式
工厂方法模式1.工厂方法模式是什么? 工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 工厂方法模式完全实现‘开-闭 原则’,实现了可扩展原创 2015-08-03 13:35:44 · 520 阅读 · 0 评论 -
设计模式 开放-封闭原则
开放-封闭原则1. 开放-封闭原则的核心思想 关于开放封闭原则,其核心的思想是: 软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。 因此,开放封闭原则主要体现在两个方面: 对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。 对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行原创 2015-08-01 13:09:59 · 580 阅读 · 0 评论 -
设计模式 业务封装 & 紧耦合 vs. 松耦合 & 简单工厂模式
业务封装 & 紧耦合 vs. 松耦合 & 简单工厂模式业务封装 假如让你设计一个控制台版的计算器,当你写好后。现在让你设计一个有界面的计算器,你之前所写的代码能直接复用吗?当我们写控制台版的计算器时就应该想到将业务逻辑与界面逻辑分开,让它们的耦合度降低,只有分离开才容易达到维护或扩展。 紧耦合 vs. 松耦合 如果要在计算器的业务逻辑加上其他操作符运算,能否不影响原来的业务逻辑?这时可以用继原创 2015-08-01 09:36:26 · 1408 阅读 · 0 评论 -
设计模式 单一职责原则
单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小,而且一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作,因此要将这些职责进行分离,将不同的职责封装在不同的类中,即将不同原创 2015-08-01 11:50:01 · 539 阅读 · 0 评论 -
设计模式 六大原则
http://www.cnblogs.com/lhws/archive/2012/03/10/2389189.html转载 2015-08-01 23:16:50 · 459 阅读 · 0 评论 -
设计模式 策略模式
策略模式 策略模式是什么 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 策略模式的组成有哪些? 抽象策略角色: 策略类,通常由一个接口或者抽象类实现。 具体策略角色:包装了相关的算法和行为。 环境角色:持有一个策略类的引用,最终给客户端调用。 策略模式与工厂模式的不同之处? 用途不一样原创 2015-08-01 11:14:17 · 465 阅读 · 0 评论 -
设计模式中的七大原则和23种设计模式
首先说一个概念“高内聚低耦合”,高内聚即:把功能相同、相近的东西放到同一个类里面,而低耦合即:不同类之间的联系越少越好。 下面的设计模式中的七大原则,也可以叫做面向对象的七大原则,都是以“高内聚低耦合”为目标。(网上有些说是六大原则,但是丢失了其中一个原则,很奇怪,我这里为了全面就全部写上来,所以我叫它七大原则。其实都是很重要的原则,所以不必拘泥于几个原则)好了,现在说说这七个设计模式中的原则:原创 2017-01-16 21:10:17 · 1047 阅读 · 1 评论