
翻译TIPatterns
文章平均质量分 81
lxwde
这个作者很懒,什么都没留下…
展开
-
翻译TIPatterns--简单化(Simplifying Idioms)
小布同学这一小节写的很不爽,翻起来一头雾水。我想他大概的意思是说,如果方法需要传递比较多的参数,那最好把这些参数包成一个类。 简单化(Simplifying Idioms) 在研究复杂技术之前,了解一下使代码简单明了的基本方法是很有帮助的。 信使(Messenger) 最普通的方法就是通过信使(messenger),它简单的将信息打包到一个用于传送翻译 2004-08-04 14:26:00 · 4383 阅读 · 8 评论 -
翻译TIPatterns--复杂的交互(Complex interactions)
复杂的交互(Complex interactions) 多重分派(Multiple dispatching) 处理多种类型之间的交互可能会使程序变的相当杂乱。比如,考虑一个解析和执行数学表达式的系统。你需要支持数字+数字,数字×数字,等等,这里的数字 (Number) 是一系列数字对象的基类。但是,当我们仅仅给出a+b,我们并不知道a或者b的确切类型,那我们又如何让它们正确的交互呢?翻译 2004-09-06 10:23:00 · 2967 阅读 · 0 评论 -
翻译TIPatterns--算法分解(Algorithmic partitioning)
算法分解(Algorithmic partitioning) 命令模式(Command):运行时刻选择操作 在《Advanced C++: Programming Styles And Idioms》 (Addison-Wesley, 1992) 一书中,Jim Copline借用了functor这个术语,用以指代那些只为封装一个函数而构造的对象(因为“functor”在数学上有翻译 2004-08-30 19:35:00 · 2996 阅读 · 0 评论 -
翻译TIPatterns--灵活的结构(Flexible structure)
灵活的结构(Flexible structure)组合Composite 关于Composite 模式,很重要的一点是,所有属于部分-整体(part-whole)的这些元素都是可以被操作的,也就是说对某个节点(node)/组合(composite)的操作也同样会作用于该节点的所有子节点。GoF在他们的书里给出了如何在基类接口里包含和访问子节点的实现细节,但看起来似乎没这个必要。下面给出的翻译 2004-08-23 09:13:00 · 2663 阅读 · 2 评论 -
翻译TIPatterns--外部化对象状态(Externalizing object state)
外部化对象状态(Externalizing object state) 备忘录(Memento) 用序列化(serialization)写一个系统实现undo机制。 (就这一句话,布卢斯埃克还没写这一章) 目录翻译 2004-09-06 10:45:00 · 2814 阅读 · 2 评论 -
翻译TIPatterns--复杂系统的状态(Complex system states)
复杂系统的状态(Complex system states)状态机(StateMachine) 就像State模式可以通过某种方法让客户端程序员改变(类的)实现一样,状态机(StateMachine)利用某种结构自动的使类的实现从一个对象改变为另外一个对象。正在使用的实现代表系统的当前状态,系统在某一种状态和下一个状态之间表现出不同的行为(因为使用了State模式)。基本上说,这就是一个翻译 2004-09-16 16:18:00 · 3794 阅读 · 0 评论 -
翻译TIPatterns--项目(Projects)
项目 这里是一些留待你解决的更具挑战性的项目。【其中的某一些可能以后会作为本书的例子,所以可能会从这里拿掉】 老鼠和迷宫 首先,创建一个黑板(cite reference?)对象用来记录信息。在这个特殊的黑板上画迷宫,并且用它来显示由老鼠探测出来的迷宫的结构信息。 现在创建一个真正的迷宫,这个对象只暴露它自身很少一部分的信息——针对给定的坐标,它会告诉你紧挨着给它四周是墙壁还是翻译 2004-10-11 08:56:00 · 3222 阅读 · 2 评论 -
翻译TIPatterns--模式重构(Pattern refactoring)
模式重构(Pattern refactoring) 这一章我们会专注于通过逐步演化的方式应用设计模式来解决问题。也就是说,一开始我们会用比较粗糙的设计作为最初的解决方案,然后检验这个解决方案,进而针对这个问题使用不同的设计模式(有些模式是可行的,有些是不合适的)。在寻找更好的解决方案的过程中,最关键的问题是,“哪些东西是变化的?” 这个过程有点像Martin Fowler在《重构:改善翻译 2004-12-07 15:56:00 · 6418 阅读 · 1 评论 -
翻译TIPatterns--附录:工具
附录:工具 包括编译本书(代码)用到的一些工具。其中一些可能是临时性的,如果以后基准代码移到CVS,它们可能会从这里消失。Ant 扩展 Ant 提供扩展API,你可以利用它们用java创建你自己的任务。你可以从Ant的官方文档或者已出版的关于Ant的书籍中找到详尽的信息。 作为另外一种选择,你可以简单的写一个java程序,并且在Ant里调用;使用这种方法,你就用不着学习扩展A翻译 2004-12-07 09:33:00 · 2872 阅读 · 0 评论 -
翻译TIPatterns--多个编程语言(Multiple languages)-1
多个编程语言Multiple languages-1 本章我们讨论跨越语言边界所带来的好处。通常来说,对于某个问题的解决,使用多于一种的编程语言比死抱住一门语言不放,会更便利。本章你将会看到,对于某种语言而言非常困难或者棘手的问题,如果用另外一种语言就可能很容易并且很快被解决掉。如果能够把多种语言结合起来,你就可以更快更节约的创造产品。 上面这个想法最直接的应用就是被称为Int翻译 2005-02-21 10:03:00 · 4042 阅读 · 2 评论 -
翻译TIPatterns--多个编程语言(Multiple languages)-2
多个编程语言Multiple languages-2。。。。。。创造一门语言 使用Jython,在你的程序内部创造一种解释(interpreted)语言是极其简单的。考虑 《Thinking in Java》第二版第八章greenhouse控制器的那个例子。那种情形下你会希望最终用户——也就是管理greenhouse的那个人——能够通过配置来控制整个系统,于是一个简单的脚本语翻译 2005-02-21 15:16:00 · 3354 阅读 · 2 评论 -
翻译TIPatterns--降低接口复杂度(Reducing interface complexity)
降低接口复杂度(Reducing interface complexity) 有时候你需要解决的是很简单的问题,比如“当前的接口不是你正好需要的”。Façade模式(外观)通过为库或者一堆资源提供一个更易用的使用方法,为一系列类创建一个接口。 外观Façade 当我想方设法试图将需求初步(first-cut)转化成对象的时候,通常我使用的原则是:“把所有丑陋的东翻译 2004-08-30 18:02:00 · 3052 阅读 · 0 评论 -
翻译TIPatterns--系统解耦(System decoupling)
系统解耦(System decoupling) 观察者模式(Observer) 和其它形式的回调函数(callback)类似,Observer模式也允许你通过挂钩程序(hook point)改变代码。不同之处在于,从本质上说,Observer模式是完全动态的。它经常被用于需要根据其它对象的状态变化来改变自身(状态)的场合,而且它还经常是事件管理系统(event managemen翻译 2004-08-23 09:24:00 · 3098 阅读 · 0 评论 -
翻译TIPatterns--封面
ThinkinginPatternsProblem-Solving Techniques usingJavaBruce EckelPresident, MindView, Inc. Revision 0.9 - May 20, 2003 to be translated by lxwde 目录翻译 2004-08-04 09:23:00 · 2295 阅读 · 0 评论 -
翻译TIPatterns--前言(Preface)&绪论(Introduction)
前言 这本书里的内容是由我(大多数时候和Bill Venners一起)在过去几年里开办的一个讲座课程发展而来的。Bill和我举办这个讲座已经有好多期了,在过去几年里随着我们自身学习到更多关于模式以及如何办好讲座班的知识,这个课程的内容也发生了很大的变化。 在这个过程中,我们积累了足够我们俩各自开一个班的信息,但我们不愿意这么做,因为我们俩一起上课实在是太有意翻译 2004-08-04 09:46:00 · 10985 阅读 · 21 评论 -
翻译TIPatterns--模式概念(The pattern concept)
模式概念 “设计模式帮助你从别人的成功经验而不是你自己的失败那里学到更多东西”.或许,面向对象设计领域迈出的最重要的一步就是“设计模式”运动,这一运动被记录整理成“设计模式”一书。那本书展示了23种针对特定类型问题的解决办法。本书将用例子来介绍设计模式的基本概念。这将会激起你阅读Gamma等人所著的《设计模式》一书的兴趣,该书已成为从事面相对象编程的程序员的重要的和几乎必需的“词汇表”翻译 2004-08-04 10:07:00 · 7014 阅读 · 18 评论 -
翻译TIPatterns--特化创建(Specialized creation)
特化创建(Specialized creation)原型(Prototype) 通过克隆某个原型的实例来创建对象。“模式重构(Pattern Refactoring)”一章会给出这种模式的一个例子。生成器(Builder) Builder模式的目的是为了将对象的构造与它的“表示”(representation)分离开来,这样对象就可以有多个不同的“表示”。对象构造的过程保持翻译 2004-08-10 12:19:00 · 3254 阅读 · 0 评论 -
翻译TIPatterns--几句废话
上网搜过,确信Thinking in Patterns with Java 还没有人翻,打算翻翻试试。找来的是0.9的那个版本http://www.mindview.net/Books/TIPatterns/。老布同志已经有一年多没更新这本书了。 目录翻译 2004-08-04 09:14:00 · 2796 阅读 · 3 评论 -
翻译TIPatterns--目录(Contents)
<!--google_ad_client = "pub-5235112404159910";google_alternate_color = "0000FF";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_type = "text_image";g翻译 2004-08-04 09:26:00 · 5500 阅读 · 49 评论 -
翻译TIPatterns--对象数量(Object quantity)
对象数量(Object quantity) 这里描述的两种模式都可以单独用来控制对象的数量。 单件(Singleton)实际上可以认为是对象池(Object Pool)的一个特例,但是对象池(Object Pool)的应用和单件(Singleton)是如此的不同,将二者区分开来对待是非常必要的。 单件(Singleton) 单件(Singleton)提供翻译 2004-08-04 16:40:00 · 4056 阅读 · 2 评论 -
翻译TIPatterns--分解共同性(Factoring Commonality)
分解共同性(Factoring Commonality) 应用“一次且只能有一次” 原则产生最基本的模式,将变化的那部分代码放到方法里。这可以用两种方法来表达:策略模式(Strategy):运行时刻选择算法 另外,Strategy模式还可以添加一个“上下文(context)”,这个context可以是一个代理类(surrogate class),用来控制对某个特定strat翻译 2004-08-06 19:56:00 · 3466 阅读 · 0 评论 -
翻译TIPatterns--对象去耦(Object decoupling)
对象去耦(Object decoupling) 代理(Proxy)模式和状态(State)模式分别提供了供你使用的代理类(surrogate class);正真干活的那个类被代理类隐藏了。当你调用代理类的一个方法的时候,代理类只是简单的调用实现类(implementing class)所对应的方法。这两种模式非常相似,实际上,代理(Proxy)模式只是状态(State)模式的一个特翻译 2004-08-06 08:48:00 · 4101 阅读 · 3 评论 -
翻译TIPatterns--封装创建(Encapsulating creation)
封装创建(Encapsulating creation) 当你发现需要向某个系统添加一些新类型的时候,最明智的做法就是先利用多态(polymorphism)为这些新类型创建一个公共接口。这可以使系统其余部分的代码与新加入的那些特定类型相分离。加入新的类型可能并不需要更改现有的代码。。。或者至少看上去不需要。初看起来,如果你用上面说的这种设计方法修改代码,那么唯一需要改动的就是继承新类型的翻译 2004-08-10 09:28:00 · 3272 阅读 · 0 评论 -
翻译TIPatterns--太多(Too many)
太多(Too many)享元(Flyweight):太多对象(too many objects) Flyweidht模式可能让人感到奇怪的一点是: 它(在其它模式的辅助下)是改善性能(performance hack)的一种方法。 通常来说比较好的做法就是简单的把系统里所有东西都弄成对象,但是有时候这样做会使得产生的对象数量非常巨大,这可能会导致系统过于缓慢或者内存耗尽。翻译 2004-08-16 09:22:00 · 3130 阅读 · 0 评论 -
翻译TIPatterns--连接不同类型(Connecting different types)
连接不同类型(Connecting different types)适配器(Adapter) 适配器(Adaper)接受一种类型,并为其它类型产生一个接口。当你手头有某个类,而你需要的却是另外一个类(When you’ve got this, and you need that),你可以通过Adapter来解决问题。唯一需要做的就是产生出你需要的那个类(that),有许多种方法可以完翻译 2004-08-16 09:33:00 · 2897 阅读 · 1 评论