搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
设计模式从入门到精通
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121115608
  • 作      者:
    杨帆,王钧玉,孙更新编著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2010
收藏
内容介绍
    《设计模式从入门到精通》使用Java语言来描述经典的GoF23设计模式,在讲解过程中涉及了JDK 6.0中的新特性,全书采用案例驱动的形式,由一个完整的超市系统案例统领了全部知识点。《设计模式从入门到精通》以案例项目工程为主线,以应用为目的,循序渐进地讲解了设计模式的具体应用方法,易学易用,并且结合案例驱动形式,可以使读者将各种设计模式真正运用到实际开发中,避免理论与实践脱节的问题。<br>    《设计模式从入门到精通》适用于对设计模式不甚了解的初学者,同时也适合具有一定编程基础、需要提高实践技术的程序员作为参考用书。《设计模式从入门到精通》还可作为高等院校计算机等专业及相关培训学校的指导教材。
展开
精彩书摘
    第1章  设计模式初见<br>    设计模式(DesignPattern)是一套经过分类的、被反复使用的软件代码设计经验的总结。使用设计模式是为了可复用代码,让代码更容易被理解,保证代码的可靠性。通常来说,设计模式是软件复用的基础理论,它使代码编制真正工程化。<br>    设计模式最初是在建筑学中被提出的,建筑师克里斯托佛·亚历山大在1970年代编撰了一本汇集设计模式的书,但是设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里传播得广泛和深远。<br>    软件设计中的设计模式是在GoF(“四人帮”,指Gamma、Helm、JollIlson&Vlissides、Addison—Wesley四人)合著的《设计模式》一书中第一次提出的,随后被规范化。本书提出的23种基本设计模式便属于《设计模式》中所提及的经典的模式。<br>    1.1  一切从某个小超市开始<br>    在软件工程领域中研究一种具体的技术,通常都会借助一个具体的案例来分析和学习,在本书中也不例外,在每一章节的学习过程中,读者除了要学习和分析模式的案例,还将学习如何使用设计模式来解决一个现实工程中存在的问题。<br>    各章节的案例都来源于一个“超市”案例,因为“超市”对于大众来说都比较熟悉,其中发生的问题也比较容易理解。<br>    软件设计中的超市是什么样子的呢?其实本软件设计中就是使用软件来模拟人经营一个超市,现实生活中的超市中发生的各种情况在软件环境中都要提及并加以处理。比如要进行商品的上架、仓库进货、打折销售、客户服务、广告宣传等。<br>    在学习每一个模式时,为了达到良好的学习效果,读者最好能了解一下每一章涉及的超市问题发生的原因及需求,这对理解模式的意图是十分关键的。<br>    1.2  为何使用设计模式<br>    要回答为何要使用设计模式这个问题,必须要知道设计模式的优点。设计模式的优点如下:复用解决方案<br>    在代码设计中通常会遇到需要设计的方案和以前设计的某个方案类似的问题,比如之前已经设计过一个论坛系统,现在又要设计一个讨论版系统。这时,比较好的解决方案就是最大限度地利用之前设计的代码。<br>    设计模式的主要思想就是“复用”,通过复用已经确认的设计,能够在解决问题的过程中使用最小的成本获得最大的效益,而且可以在学习他人经验的过程中获利,不用再为那些总是会重复出现的问题重复设计解决方案。
展开
目录
第1章 设计模式初见 1<br>1.1 一切从某个小超市开始 1<br>1.2 为何使用设计模式 1<br>1.3 设计模式分类 2<br>1.4 阅读建议与学习资源 3<br><br>第2章 面向对象设计原则 4<br>2.1 软件的维护代价 4<br>2.2 面向对象设计原则 4<br>2.2.1 基础原则:“开-闭”原则(OCP) 4<br>2.2.2 单一职责原则(SRP) 7<br>2.2.3 里氏替换原则(LSP) 10<br>2.2.4 依赖倒置原则(DIP) 12<br>2.2.5 接口隔离原则(ISP) 13<br>2.3 Java面向对象的支持 14<br><br>第3章 统一建模语言UML概述 15<br>3.1 UML发展史 15<br>3.2 UML中的关系 17<br>3.2.1 依赖关系 17<br>3.2.2 继承关系 17<br>3.2.3 实现关系 17<br>3.2.4 关联关系 18<br>3.2.5 聚合关系 18<br>3.2.6 组合关系 18<br>3.3 UML中的图形类型 19<br>3.4 UML工具软件 19<br><br>第4章 工厂方法模式(Factory Method) 21<br>4.1 商品上架遇到的问题 21<br>4.2 工厂方法模式的结构 24<br>4.2.1 简单工厂模式 24<br>4.2.2 工厂方法模式 29<br>4.2.3 使用工厂方法模式解决商品上架问题 33<br>4.2.4 工厂模式在JDK中的实例 42<br>4.2.5 工厂方法模式的使用范围 44<br>4.2.6 简单工厂与其他模式的区别 44<br>4.3 工厂方法模式总结 44<br><br>第5章 抽象工厂模式(Abstract Factory) 45<br>5.1 深入探讨商品上架遇到的问题 46<br>5.2 抽象工厂模式的结构 51<br>5.2.1 抽象工厂模式 51<br>5.2.2 使用抽象工厂模式解决商品上架问题 58<br>5.2.3 抽象工厂模式在JDK中的实例 66<br>5.2.4 抽象工厂模式的使用范围 71<br>5.2.5 与其他模式的关系 71<br>5.3 抽象工厂模式总结 72<br><br>第6章 建造者模式(Builder Factory) 73<br>6.1 商品捆绑销售的问题 73<br>6.2 建造者模式的结构 76<br>6.2.1 建造者模式 76<br>6.2.2 使用建造者模式解决捆绑销售问题 83<br>6.2.3 建造者模式的实际使用案例 92<br>6.2.4 建造者模式的使用范围 92<br>6.2.5 与其他模式的关系 93<br>6.3 建造者模式总结 93<br><br>第7章 原型模式(Prototype) 94<br>7.1 新连锁店开张 94<br>7.2 原型模式的结构 97<br>7.2.1 原型模式 97<br>7.2.2 浅克隆与深克隆 102<br>7.2.3 使用原型模式解决连锁店问题 109<br>7.2.4 原型模式在JDK中的应用实例 116<br>7.2.5 原型模式的使用范围 116<br>7.2.6 与其他模式的关系 117<br>7.3 原型模式总结 117<br><br>第8章 单例模式(Singleton) 118<br>8.1 连锁店总店的唯一性问题 118<br>8.2 单例模式的结构 120<br>8.2.1 单例模式 120<br>8.2.2 多线程情况下的单例模式 122<br>8.2.3 单例模式的双重检查模式DCL 126<br>8.2.4 使用单例模式解决连锁店总店的问题 129<br>8.2.5 单例模式在JDK中的实例 137<br>8.2.6 单例模式的使用范围 140<br>8.2.7 与其他模式的关系 140<br>8.3 单例模式总结 141<br><br>第9章 适配器模式(Adapter) 142<br>9.1 家电区的麻烦 142<br>9.2 适配器的结构 143<br>9.2.1 类适配器 143<br>9.2.2 对象适配器 144<br>9.2.3 两种适配器的对比 145<br>9.2.4 用适配器模式解决电源插头问题 146<br>9.2.5 双向适配器 149<br>9.2.6 适配器模式在JDK中的实例 150<br>9.2.7 适配器的适用范围 155<br>9.2.8 与其他模式的关系 155<br>9.3 适配器模式总结 156<br><br>第10章 桥接模式(Bridge) 157<br>10.1 游戏机销售专柜引发的思考 157<br>10.2 桥接模式的结构 158<br>10.2.1 桥接模式 158<br>10.2.2 使用桥接模式解决游戏机销售的问题 163<br>10.2.3 桥接模式在JDK中的实例 168<br>10.2.4 桥接模式的使用范围 171<br>10.2.5 与其他模式的关系 171<br>10.3 桥接模式总结 171<br><br>第12章 代理模式(Proxy) 172<br>11.1 手机柜台遇到的问题 172<br>11.2 代理模式的结构 173<br>11.2.1 代理模式 173<br>11.2.2 使用代理模式解决手机展示过程中的问题 177<br>11.2.3 几种不同的代理模式 186<br>11.2.4 代理模式的使用范围 192<br>11.2.5 与其他模式的关系 193<br>11.3 代理模式总结 193<br><br>第12章 外观模式(Facade) 194<br>12.1 顾客的意见——购买大件商品时手续繁多 194<br>12.2 外观模式的结构 195<br>12.2.1 外观模式 195<br>12.2.2 使用外观模式解决顾客的一站式服务 201<br>12.2.3 外观模式在JDK中的实例 206<br>12.2.4 外观模式的使用范围及优点 209<br>12.2.5 与其他模式的关系 210<br>12.3 外观模式总结 210<br><br>第13章 装饰模式(Decorator) 212<br>13.1 如何解决销售人员的能力固化问题 212<br>13.2 装饰模式的结构 213<br>13.2.1 装饰模式 213<br>13.2.2 使用装饰模式解决销售人员问题 217<br>13.2.3 装饰模式在JDK中的实例 223<br>13.2.4 装饰模式的使用范围 224<br>13.2.5 与其他模式的关系 225<br>13.3 装饰模式总结 226<br><br>第14章 组合模式(Composite) 227<br>14.1 如何描述超市的组织结构 227<br>14.2 组合模式的结构 229<br>14.2.1 组合模式 229<br>14.2.2 使用桥接模式解决超市组织结构问题 236<br>14.2.3 组合模式在JDK中的实例 244<br>14.2.4 组合模式的使用范围 248<br>14.2.5 与其他模式的关系 248<br>14.3 组合模式总结 248<br><br>第15章 享元模式(Flyweight) 249<br>15.1 宣传海报设计过程中的思考 249<br>15.2 享元模式的结构 250<br>15.2.1 单纯享元模式 250<br>15.2.2 复合享元模式 255<br>15.2.3 使用享元模式解决宣传海报的设计问题 260<br>15.2.4 享元模式在JDK中的实例 272<br>15.2.5 享元模式的使用范围 274<br>15.2.6 与其他模式的关系 274<br>15.3 享元模式总结 275<br><br>第16章 命令模式(Command) 276<br>16.1 连锁店客服专线的问题 276<br>16.2 命令模式的结构 279<br>16.2.1 命令模式 279<br>16.2.2 使用命令模式解决客服电话的问题 289<br>16.2.3 命令模式在JDK中的实例 297<br>16.2.4 命令模式的使用范围 298<br>16.2.5 与其他模式的关系 299<br>16.3 命令模式总结 299<br><br>第17章 观察者模式(Observer) 300<br>17.1 连锁店宣传资料的发放问题 300<br>17.2 观察者模式的结构 304<br>17.2.1 观察者模式 305<br>17.2.2 使用观察者模式构建发布/订阅模型 309<br>17.2.3 观察者模式在JDK中的实例 316<br>17.2.4 观察者模式的使用范围 321<br>17.2.5 与其他模式的关系 322<br>17.3 观察者模式总结 323<br><br>第18章 责任链模式(Chain of Responsibility) 324<br>18.1 商品进货审批中的问题 324<br>18.2 责任链模式的结构 328<br>18.2.1 责任链模式 328<br>18.2.2 纯的和不纯的责任链模式 332<br>18.2.3 用责任链模式建立明晰的进货审批流程 332<br>18.2.4 责任链模式在JDK中的实例 338<br>18.2.5 责任链模式的使用范围 342<br>18.2.6 与其他模式的关系 343<br>18.3 责任链模式总结 343<br><br>第19章 迭代器模式(Iterator) 344<br>19.1 收银员的商品处理效率亟待提高 344<br>19.2 迭代器模式的结构 350<br>19.2.1 迭代器模式 350<br>19.2.2 用迭代器模式统一处理各类商品 354<br>19.2.3 迭代器模式在JDK中的实例 362<br>19.2.4 迭代器模式的使用范围及优点 365<br>19.2.5 与其他模式的关系 365<br>19.3 外观模式总结 365<br><br>第20章 访问者模式(Visitor) 366<br>20.1 再谈收银员的效率问题 366<br>20.2 访问者模式的结构 369<br>20.2.1 静态、动态、单分派、多分派、双重分派 369<br>20.2.2 访问者模式 374<br>20.2.3 用访问者模式设计灵活高效的收银程序 381<br>20.2.4 访问者模式在JDK中的实例 387<br>20.2.5 访问者模式的使用范围及优点 388<br>20.2.6 与其他模式的关系 389<br>20.3 访问者模式总结 389<br><br>第21章 状态模式(State) 390<br>21.1 如何调整超市的运营状态 390<br>21.2 状态模式的结构 393<br>21.2.1 状态模式 393<br>21.2.2 用状态模式设计超市在不同时段的打折状态 403<br>21.2.3 状态模式的使用范围及优点 408<br>21.2.4 与其他模式的关系 408<br>21.3 状态模式总结 408<br><br>第22章 备忘录模式(Memento) 409<br>22.1 服务器硬盘坏了,营业数据全丢了 409<br>22.2 备忘录模式的结构 411<br>22.2.1 备忘录模式白箱实现 412<br>22.2.2 备忘录模式黑箱实现 415<br>22.2.3 用备忘录模式设计可靠的数据保存系统 421<br>22.2.4 备忘录模式在JDK中的实例 431<br>22.2.5 备忘录模式的特点 432<br>22.2.6 与其他模式的关系 433<br>22.3 备忘录模式总结 433<br><br>第23章 策略模式(Strategy) 434<br>23.1 最常用的促销手段——打折 434<br>23.2 策略模式的结构 437<br>23.2.1 策略模式 437<br>23.2.2 用策略模式构建灵活的打折方式 447<br>23.2.3 策略模式在JDK中的实例 459<br>23.2.4 策略模式的使用范围及优点 460<br>23.2.5 与其他模式的关系 461<br>23.3 策略模式总结 461<br><br>第24章 调停者模式(Mediator) 462<br>24.1 超市经营的核心——库存管理 462<br>24.2 调停者模式的结构 469<br>24.2.1 调停者模式 469<br>24.2.2 用调停者模式协调进货/销售/盘点之间的关系 475<br>24.2.3 调停者模式在JDK中的实例 481<br>24.2.4 调停者模式的适用范围及优缺点 482<br>24.2.5 与其他模式的关系 482<br>24.3 调停者模式总结 482<br><br>第25章 模板方法模式(Template Method) 483<br>25.1 超市面包房的糕点制作流程规范化问题 483<br>25.2 模板方法模式的结构 487<br>25.2.1 模板方法模式 487<br>25.2.2 用模板方法模式设计不同糕点的制作流程 491<br>25.2.3 模板方法模式在JDK中的实例 497<br>25.2.4 模板方法模式的使用范围及优点 499<br>25.2.5 与其他模式的关系 500<br>25.3 模板方法模式总结 500<br><br>第26章 解释器模式(Interpreter) 501<br>26.1 新店开在了外国人聚居区 501<br>26.2 解释器模式的结构 504<br>26.2.1 解释器模式 504<br>26.2.2 用解释器模式设计超市内的多语言指示牌 510<br>26.2.3 解释器模式在JDK中的实例 516<br>26.2.4 解释器模式的使用范围及优点 517<br>26.2.5 与其他模式的关系 517<br>26.3 解释器模式总结 518<br><br>第27章 设计模式总结 519<br>27.1 回顾设计模式在超市发展中的足迹 519<br>27.2 各模式之间的关系及演变图 521<br>27.3 新的知识新的起点 522<br>27.3.1 Java EE设计模式 522<br>27.3.2 架构风格模式 523<br>27.3.3 架构模式 523<br>27.3.4 分层架构模式 524<br>27.4 学习建议 524
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证