《设计模式》
用最简洁的例子讲述 《设计模式》
Yu______________
这个作者很懒,什么都没留下…
展开
-
《设计模式》 - 8. 外观模式( Facade )
《设计模式》 - 8. 外观模式( Facade ) :语言 : C#说明 :外观模式通常将 , 较复杂代码封装 , 方便子系统调用 , 不容易出错 , 可以减少系统间的相互依赖 . 图示 :实现 :对图示中的内容稍微简化了一些 , 大致思路是一样的 . namespace DesignPattern{ public interface Shape { void d原创 2017-03-10 16:55:13 · 1541 阅读 · 0 评论 -
《设计模式》 - 7. 组合模式( Composite )
组合模式 ( Composite ) : 说明 :以一个游戏角色为例 , 人物角色的技能表为 主菜单 (skillMenu) , 主菜单 包含 冰系技能菜单 ( iceSkillMenu ) 和 火系技能菜单 ( fireSkillMenu ) , 菜单里面分别还有对应属性技能 . 适用情况 :像上面举例的这种情况 , 技能表 和 属性技能 , 还有单个技能之间层次关系分明 , 就可以使用组合模式原创 2016-12-14 15:32:08 · 2206 阅读 · 0 评论 -
《设计模式》 - 6. 桥接模式( Bridge )
tips : ctor 是cocos2d - JS 中构造函数 . 桥接模式 ( Bridge ) :说明 : 以画笔为例 , 假设画笔有3种型号 (大 、中 、小) 和 3种颜色 (黑 、白 、红) . 正常情况下 每个型号和每种颜色组合(小黑 、中黑 、大黑 、 小白 、中白…)都需要一支 , 那就需要 3*3 = 9 支笔 . 当需求变化时 , 型号和颜色越来越多 , 新增笔的种类也是原创 2016-12-14 11:54:52 · 554 阅读 · 0 评论 -
《设计模式》 - 5. 适配器模式( Adapter )
适配器模式 (Adapter) : 以一个游戏主角为例 , 刚开始主角只有普通攻击和一个技能 - 重击 . //主角var Character = cc.Class.extend({ Attack : function(){ console.log("普通攻击"); }, Skill : function(){ console.log("重击原创 2016-12-13 15:18:37 · 2081 阅读 · 0 评论 -
《设计模式 》 - 4. 原型模式( Prototype )
原型模式 ( Prototype ) : JavaScript 克隆方法 : function clone(obj) { if (null == obj || "object" != typeof obj) { return obj; } // Date if (obj instanceof Date) { var cop原创 2016-12-09 11:44:10 · 503 阅读 · 0 评论 -
《设计模式》 - 3. 创建者模式( Builder )
Tips : 以KFC的套餐为例 ,每种套餐包含(主食 、副食 、饮料)三种食物 , 假设不同的厨师(Cook)会制作不同的套餐(Meal) , 根据套餐选择不同的厨师 .语言 : JavaScript创建者模式 ( Builder ) :导演类( Dirctor ) :导演类规定套餐的基本组成 , 分为主食 、副食 、饮料3个部分 . var Dirctor = cc.Class.extend({原创 2016-12-05 15:07:08 · 3317 阅读 · 0 评论 -
《设计模式》 - 2. 工厂模式( Factory )
Tips : 以下是看完很多作者写得设计模式后的一些个人理解 . 暂以一个生产汽车的工厂为例 , 来阐述工厂设计模式. 简单工厂模式 (Simple Factory) :产品类 :现在有两种车型, 他们都继承Car基类, 两种车具有基类的所有属性和方法.var Car = cc.Class.extend({ ctor: function(){ },})var A_Car = Car.原创 2016-11-30 10:02:59 · 3088 阅读 · 0 评论 -
《设计模式》 - 1. 单例模式( Singleton )
Javascript设计模式 - 原文链接单例模式 : 定义 : 一个类有一个唯一实例, 只能被实例化一次, 可以多个地方调用获取 (JS本身是”无类”语言)在点击按钮需要弹出一个遮罩层的时, 例如 web.qq.com点击登录的时候. 第一次处理 : 创建 div : var createMask = function(){ return document,body.appendChild(原创 2016-11-16 18:24:39 · 1608 阅读 · 0 评论