您好,欢迎光临有路网!
基元设计模式-(英文版)
QQ咨询:
有路璐璐:

基元设计模式-(英文版)

  • 作者:史密斯
  • 出版社:电子工业出版社
  • ISBN:9787121211911
  • 出版日期:2013年10月01日
  • 页数:333
  • 定价:¥75.00
  • 猜你也喜欢

    分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    即使是经验丰富的软件专业人士,也会发现要为其企业找到能带来实质价值的模式应用方式殊非易事。本书**以全面的方法论介绍基元设计模式,给出标准的命名和描述,阐述它们的重要性,帮助人们比较和选用,充分利用模式的真正力量,将它们转化成实际的、更加简洁直接的软件实现,并得到非常不错的效果。 对于开发工程师、设计师、架构师和分析师,本书都能提供有价值的指导,帮助他们在大多数语言、环境和问题领域使用模式。
    文章节选
    《基元设计模式(英文版)/Jolt大奖精选丛书》编著者史密斯。
    本书介绍了一类全新的设计模式,称为基元设计模式(Elemental Design Pattem),其为软件工程设计模式的研究和应用打下了基础。基元设计模式深深植根于软件程序设计理论的研究,但其目的却在于实践性和实用性。从程序设计的新手,到**的开发工程师,都是基元设计模式的目标受众。它能够带领学生加入软件工业的大军,也能够为研究者打开新的思路。
    目录
    figures xi
    tables xv
    listings xvii
    foreword xix
    preface xxi
    acknowledgments xxiii
    about the author xxv
    1 introduction to design patterns 1
    1.1 tribal musings 5
    1.2 art or science? 9
    1.2.1 viewing patterns as rote 9
    1.2.2 language-dependent views 10
    1.2.3 from myth to science 12
    2 elemental design patterns 13
    2.1 background 14 figures xi tables xv listings xvii foreword xix preface xxi acknowledgments xxiii about the author xxv 1 introduction to design patterns 1 1.1 tribal musings 5 1.2 art or science? 9 1.2.1 viewing patterns as rote 9 1.2.2 language-dependent views 10 1.2.3 from myth to science 12 2 elemental design patterns 13 2.1 background 14 2.2 the where, the why, the how 17 2.2.1 decomposition of decorator 18 2.2.2 down the rabbit hole 21 2.2.3 context 30 2.2.4 the design space 33 2.3 core edps 42 2.4 conclusion 44 3 pattern instance notation 45 3.1 basics 45 3.2 the pinbox 49 3.2.1 collapsed pinbox 49 3.2.2 standard pinbox 51 3.2.3 expanded pinbox 55 3.2.4 stacked pinboxes and multiplicity 56 3.2.5 peeling and coalescing 62 3.3 conclusion 65 4 working with edps 67 4.1 composition of patterns 68 4.1.1 isotopes 72 4.2 recreating decorator 77 4.3 refactoring 91 4.4 the big picture 101 4.5 why you may want to read the appendix 105 4.6 advanced topics 108 4.6.1 focused documentation and training 108 4.6.2 metrics 109 4.6.3 procedural analysis 112 4.7 conclusion 112 5 edp catalog 115 create object 117 retrieve 126 inheritance 130 abstract interface 140 delegation 145 redirection 151 conglomeration 159 recursion 165 revert method 172 extend method 181 delegated conglomeration 187 redirected recursion 193 trusted delegation 200 trusted redirection 209 deputized delegation 216 deputized redirection 222 6 intermediate pattern compositions 229 fulfill method 231 retrieve new 235 retrieve shared 240 objectifier 244 object recursion 251 7 gang of four pattern compositions 259 7.1 creational patterns 260 7.1.1 abstract factory 260 7.1.2 factory method 263 7.2 structural patterns 265 7.2.1 decorator 265 7.2.2 proxy 269 7.3 behavioral patterns 273 7.3.1 chain of responsibility 273 7.3.2 template method 275 7.4 conclusion 279 a ρ-calculus 281 a.1 reliance operators 282 a.2 transitivity and isotopes 285 a.3 similarity 286 a.4 edp formalisms 287 a.5 composition and reduction rules 291 a.6 pattern instance notation and roles 293 a.7 edp definitions 295 a.7.1 create object 295 a.7.2 retrieve 296 a.7.3 inheritance 298 a.7.4 abstract interface 298 a.7.5 delegation 299 a.7.6 redirection 300 a.7.7 conglomeration 300 a.7.8 recursion 301 a.7.9 revert method 301 a.7.10 extend method 302 a.7.11 delegated conglomeration 303 a.7.12 redirected recursion 303 a.7.13 trusted delegation 304 a.7.14 trusted redirection 305 a.7.15 deputized delegation 306 a.7.16 deputized redirection 307 a.8 intermediate pattern definitions 308 a.8.1 fulfill method 308 a.8.2 retrieve new 309 a.8.3 retrieve shared 310 a.8.4 objectifier 311 a.8.5 object recursion 312 a.9 gang of four pattern definitions 313 a.9.1 abstract factory 313 a.9.2 factory method 314 a.9.3 decorator 316 a.9.4 proxy 317 a.9.5 chain of responsibility 318 a.9.6 template method 319 bibliography 321 index 325 figures 2.1 decorator’s usual example uml. . . . . . . . . . . . . . . . . . . . . . 19 2.2 objectifier as uml. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3 object recursion as uml. . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4 a simple method call as uml. . . . . . . . . . . . . . . . . . . . . . . . 23 2.5 the parts of a method call. . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.6 a simple design space. . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.7 a simple design space with edps. . . . . . . . . . . . . . . . . . . . . . 35 2.8 our first four edps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.9 the design space extended to three dimensions. . . . . . . . . . . . . . 39 2.10 the design space with method similarity fixed to similar. . . . . . . . . 40 2.11 recursion example uml. . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.12 deputized redirection example uml. . . . . . . . . . . . . . . . . . . . 42 3.1 uml collaboration diagram. . . . . . . . . . . . . . . . . . . . . . . . . 47 3.2 strategy as pattern:role tags in uml. . . . . . . . . . . . . . . . . . . . 48 3.3 huge uml of a not-so-huge system. . . . . . . . . . . . . . . . . . . . 48 3.4 multiple instances of strategy as pattern:role tags in uml. . . . . . . . 49 3.5 collapsed pinbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.6 collapsed pinbox as annotation. . . . . . . . . . . . . . . . . . . . . . 50 3.7 singleton and abstract factory in class diagram. . . . . . . . . . . . . . 50 3.8 template method in sequence diagram. . . . . . . . . . . . . . . . . . . 51 3.9 standard pinbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.10 pin used with uml class diagram. . . . . . . . . . . . . . . . . . . . . 52 3.11 pin used with uml sequence diagram. . . . . . . . . . . . . . . . . . 53 3.12 standard pin role connections. . . . . . . . . . . . . . . . . . . . . . . 54 3.13 blank expanded pin instance. . . . . . . . . . . . . . . . . . . . . . . . 55 3.14 expanded pin instance. . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.15 expanded pin instance using uml. . . . . . . . . . . . . . . . . . . . 57 3.16 a need for multiple related pinboxes. . . . . . . . . . . . . . . . . . . 59 3.17 stacked pinbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.18 multiple strategy instances as pinboxes. . . . . . . . . . . . . . . . . . 61 3.19 showing the interaction between multiple strategy pinboxes. . . . . . . 62 3.20 abstract factory as part of a larger uml diagram. . . . . . . . . . . . . 63 3.21 abstract factory subsumed within the expanded pinbox. . . . . . . . . 64 3.22 coalesced pinbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.1 abstract interface and inheritance edps as uml. . . . . . . . . . . . . 68 4.2 internal definition of fulfill method as uml. . . . . . . . . . . . . . . . 69 4.3 fulfill method as simple connected pinboxes. . . . . . . . . . . . . . . 69 4.4 fulfill method as expanded pinbox. . . . . . . . . . . . . . . . . . . . 69 4.5 fulfill method as standard pinbox. . . . . . . . . . . . . . . . . . . . . 70 4.6 flipping our edps in fulfill method—oops. . . . . . . . . . . . . . . . 71 4.7 flipped edps as pinboxes. . . . . . . . . . . . . . . . . . . . . . . . . 72 4.8 alternative classes that can fulfill an abstract interface edp. . . . . . . . 75 4.9 alternative structures that can fulfill an inheritance edp. . . . . . . . . 76 4.10 decorator’s usual example uml. . . . . . . . . . . . . . . . . . . . . . 78 4.11 fulfill method definition as annotated uml. . . . . . . . . . . . . . . . 79 4.12 objectifier uml annotated with pin. . . . . . . . . . . . . . . . . . . . 80 4.13 objectifier and trusted redirection. . . . . . . . . . . . . . . . . . . . . 81 4.14 object recursion annotated with pin. . . . . . . . . . . . . . . . . . . . 82 4.15 object recursion as just pin. . . . . . . . . . . . . . . . . . . . . . . . 83 4.16 object recursion and extend method. . . . . . . . . . . . . . . . . . . . 84 4.17 decorator annotated with pin. . . . . . . . . . . . . . . . . . . . . . . 85 4.18 decorator as pin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4.19 decorator instance as a pinbox. . . . . . . . . . . . . . . . . . . . . . . 86 4.20 expanding decorator: one level. . . . . . . . . . . . . . . . . . . . . . . 87 4.21 expanding decorator: two levels. . . . . . . . . . . . . . . . . . . . . . 88 4.22 expanding decorator: three levels. . . . . . . . . . . . . . . . . . . . . . 89 4.23 expanding decorator: four levels. . . . . . . . . . . . . . . . . . . . . . 90 4.24 delegation before rename method refactoring. . . . . . . . . . . . . . . 93 4.25 delegation after rename method refactoring—redirection. . . . . . . . 94 4.26 delegation before move method refactoring. . . . . . . . . . . . . . . . 95 4.27 the design space with method similarity fixed to dissimilar. . . . . . . . 96 4.28 delegation after move method refactoring: boring case. . . . . . . . . . 97 4.29 delegation after move method refactoring: into same type. . . . . . . . . 97 4.30 delegation after move method refactoring: delegated conglomeration. . 97 4.31 delegation after move method refactoring: conglomeration. . . . . . . . 98 4.32 delegation after move method refactoring: trusted delegation. . . . . . 98 4.33 delegation after move method refactoring: revert method. . . . . . . . 99 4.34 delegation after move method refactoring: deputized delegation. . . . . 99 4.35 summarizing refactoring effects so far. . . . . . . . . . . . . . . . . . . 100 4.36 implicit used-by relationships among the edps and selected other patterns. . . . . .. . . . . 102 4.37 the full method-call edp design space: dissimilar method. . . . . . . . 103 4.38 the full method-call edp design space: similar method. . . . . . . . . . 104 4.39 method-call edp refactoring relations. . . . . . . . . . . . . . . . . . . 106 5.1 polymorphic approach . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 5.2 subclassing approach . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 5.3 ui class cluster showing an instance of trusted delegation. . . . . . . . 203 5.4 ui class cluster showing an instance of trusted redirection. . . . . . . . 211 5.5 ui class cluster showing an instance of deputized delegation. . . . . . . 218 5.6 ui class cluster showing an instance of deputized redirection. . . . . . . 225 7.1 abstract factory subsumed within the expanded pinbox. . . . . . . . . 261 7.2 reducing the diagram to just one instance of abstract factory. . . . . . . 262 7.3 simplifying figure 7.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 7.4 abstract factory as pin only. . . . . . . . . . . . . . . . . . . . . . . . . 265 7.5 factory method subsumed within the expanded pinbox. . . . . . . . . 266 7.6 factory method as pin only. . . . . . . . . . . . . . . . . . . . . . . . . 267 7.7 decorator subsumed with the expanded pinbox. . . . . . . . . . . . . 268 7.8 decorator as pin only. . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 7.9 decorator expanded three levels deep and flattened. . . . . . . . . . . . 270 7.10 proxy subsumed with the expanded pinbox. . . . . . . . . . . . . . . . 271 7.11 proxy as pin only. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 7.12 proxy pin reorganized to better match decorator. . . . . . . . . . . . . 272 7.13 chain of responsibility subsumed within the expanded pinbox. . . . . 274 7.14 chain of responsibility as pin only. . . . . . . . . . . . . . . . . . . . . 275 7.15 template method subsumed within the expanded pinbox. . . . . . . . 276 7.16 template method reduced to a single instance. . . . . . . . . . . . . . . 277 7.17 template method as pin only. . . . . . . . . . . . . . . . . . . . . . . . 278 7.18 template method pin reorganized to better match decorator. . . . . . . 279 7.19 factory method redefined using template method. . . . . . . . . . . . . 279 a.1 the full method call edp design space: similar method . . . . . . . . . 288 a.2 the full method call edp design space: dissimilar method . . . . . . . 289 a.3 standard pinbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 a.4 expanded pin instance . . . . . . . . . . . . . . . . . . . . . . . . . . 294 tables 2.1 pattern pieces sorted into three categories of a pattern definition . . . . 22 2.2 all interactions between entities of object-oriented programming . . . . 28 2.3 nonscoping interactions between entities of object-oriented programming . . . . .. . . . 28 a.1 all interactions between entities of object-oriented programming . . . . 283 a.2 nonscoping interactions between entities of object-oriented programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 listings 2.1 a simple method call as pseudocode. . . . . . . . . . . . . . . . . . . . 24 2.2 fields within classes, instances, and namespaces, as defined and used in c++. . . . . .. . . . 26 2.3 a java class, and one possible equivalent object and type. . . . . . . . . 27 2.4 typing as context. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.5 a method call chain as pseudocode. . . . . . . . . . . . . . . . . . . . . 30 2.6 simple method call for figure 2.5. . . . . . . . . . . . . . . . . . . . . . 31 2.7 example of a recursion method call in java. . . . . . . . . . . . . . . . 36 2.8 example of a delegation method call in c++. . . . . . . . . . . . . . . . 36 2.9 example of a redirection method call in objective-c. . . . . . . . . . . 37 2.10 example of a conglomeration method call in java. . . . . . . . . . . . . 38 5.1 uninitialized data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 5.2 fixed default values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 5.3 dynamic initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 5.4 create object implementation. . . . . . . . . . . . . . . . . . . . . . . . 125 5.5 retrieve with an update. . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.6 retrieve in a temporary variable. . . . . . . . . . . . . . . . . . . . . . . 127 5.7 basic inheritance example in objective-c. . . . . . . . . . . . . . . . . 131 5.8 overriding an implementation. . . . . . . . . . . . . . . . . . . . . . . 132 5.9 implementation assumption mismatch. . . . . . . . . . . . . . . . . . . 133 5.10 obvious fix—but likely not feasible. . . . . . . . . . . . . . . . . . . . 134 5.11 fixing a bug while leaving old code in place. . . . . . . . . . . . . . . . 134 5.12 using redirection to hide part of an interface. . . . . . . . . . . . . . . 137 5.13 animals almost all move but in very different ways. . . . . . . . . . . . 141 5.14 ceo delegates out responsibilities. . . . . . . . . . . . . . . . . . . . . 145 5.15 tom paints the fence with help. . . . . . . . . . . . . . . . . . . . . . . 152 5.16 prep work and cleanup are important. . . . . . . . . . . . . . . . . . . 153 5.17 prep work and cleanup are decomposable. . . . . . . . . . . . . . . . . 160 5.18 instance swapping for protocol fallback in c++. . . . . . . . . . . . . . 173 5.19 auto fallback/forward using revert method. . . . . . . . . . . . . . . . 176 5.20 using redirection in python to add behavior. . . . . . . . . . . . . . . . 182 5.21 using extend method to add behavior. . . . . . . . . . . . . . . . . . . 182 5.22 inviting friends naively in java. . . . . . . . . . . . . . . . . . . . . . . 187 5.23 a slightly better approach for inviting friends. . . . . . . . . . . . . . . 188 5.24 delegated conglomeration in java. . . . . . . . . . . . . . . . . . . . . . 188 5.25 traditional iteration and invocation in c. . . . . . . . . . . . . . . . . . 193 5.26 object-oriented iteration and invocation in c++. . . . . . . . . . . . . . 193 5.27 basic redirected recursion in c++. . . . . . . . . . . . . . . . . . . . . 194 5.28 paratroopers implementing redirected recursion. . . . . . . . . . . . . 195 5.29 ui widgets demonstrating trusted delegation in c++. . . . . . . . . . . 201 5.30 event handler in c++ showing trusted redirection. . . . . . . . . . . . 210 5.31 ui widgets demonstrating deputized delegation in c++. . . . . . . . . . 216 5.32 ui widgets demonstrating deputized redirection in c++. . . . . . . . . 222 6.1 conditionals to select behavior. . . . . . . . . . . . . . . . . . . . . . . 246 6.2 using objectifier to select behavior. . . . . . . . . . . . . . . . . . . . . 247 a.1 simple code example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
    编辑推荐语
    《基元设计模式(英文版)/Jolt大奖精选丛书》编著者史密斯。
    本书介绍了一类全新的设计模式,称为基元设计模式(Elemental Design Pattem),其为软件工程设计模式的研究和应用打下了基础。基元设计模式深深植根于软件程序设计理论的研究,但其目的却在于实践性和实用性。从程序设计的新手,到**的开发工程师,都是基元设计模式的目标受众。它能够带领学生加入软件工业的大军,也能够为研究者打开新的思路。

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外