2019年8月5日

设计模式(08):结构型模式(二) 桥接模式(Bridge)

摘要: 一、动机(Motivation) 在很多游戏场景中,会有这样的情况:【装备】本身会有的自己固有的逻辑,比如枪支,会有型号的问题,同时现在很多的游戏又在不同的介质平台上运行和使用,这样就使得游戏的【装备】具有了两个变化的维度——一个变化的维度为“平台的变化”,另一个变化的维度为“型号的变化”。如果我们要写代码实现这款游戏,难道我们针对每种平台都实现一套独立的【装备】吗?复用在哪... 阅读全文

posted @ 2019-08-05 17:37 springsnow 阅读(657) 评论(0) 推荐(0) 编辑

设计模式(07):结构型模式(一) 适配器模式(Adapter)

摘要: 一、动机(Motivation)在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口?二、意图(Intent)将一个类的接口转换 阅读全文

posted @ 2019-08-05 16:40 springsnow 阅读(587) 评论(1) 推荐(0) 编辑

设计模式(06):创建型模式(五) 原型模式(Prototype)

摘要: 一、动机(Motivation) 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。如何应对这种变化?如何向“客户程序(使用这些对象的程序)”隔离出“这些易变对象”,从而使得“依赖这些易变对象的客户程序”不随着需 阅读全文

posted @ 2019-08-05 16:24 springsnow 阅读(484) 评论(0) 推荐(0) 编辑

设计模式(05):创建型模式(四) 建造者、生成器模式(Builder)

摘要: 一、动机(Motivation) 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分” 阅读全文

posted @ 2019-08-05 15:20 springsnow 阅读(326) 评论(0) 推荐(0) 编辑

设计模式(04):创建型模式(三) 抽象工厂模式(Abstract Factory)

摘要: 一、动机(Motivation) 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。 如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合? 二、意图(Int 阅读全文

posted @ 2019-08-05 14:26 springsnow 阅读(343) 评论(0) 推荐(0) 编辑

导航