PDA软件市场不但巨大,而且持续成长。五年之内,全世界将有大量人口使用精明时髦,可上网的移动电话。每个家庭都有一台PC?!或许吧,但更可能每个人的口袋里都有一部PDA。本书提供给你的是在小容量内存设备中的程序开发解决方案(而且是目前科技水准)。你将学到在内存受限环境下最好、最成功的画向对象程序设计技术。
\r\n如果你是正在内在受限系统中建造应用程序的开发者、团队领导者或经理,你将在本书中找到用以成功设计和实作出高效软件所需要的每一样东西。
\r\n27个模式(Patterns),都带有完整说明、实作要点、 C++和Java范例。
\r\n5大主技术,是所有模式分类并组织后的结果:Small Structures(小型结构)、Memory Allocation(内存分配)、Compression(压缩)、Secondary Storase(辅助储存设备)、Small Architecture(小型架构)。
\r\n容易运用的书籍布局。内页之中带有可快速参考的模式索引。
\r\n高效分配内存、对付内存耗尽、以ROM取代RAM、避免内存泄漏、自动循环再利用已被用过的内容等绝窍。
侯捷译序 \r\n王飞译序 \r\n罗伟译序 \r\n序言 by John Vlissides \r\n前言 by James Noble & Charles Weir \r\n致谢 \r\n0 导读(Introduction) \r\n 如何使用本书 \r\n 小容量内存(Small Memory)简介\r\n 模式(patters)简介 \r\n 本书涵盖的模式 \r\n1 Small Architecture(小容量架构) \r\n Memory Limit(内存限额) \r\n Small Interfaces(小型接口) \r\n Partial Failure(局部损毁, 降格求全) \r\n Captain Oates(牺牲小我) \r\n Read-Only Memory(唯读内存) \r\n Hooks(挂钩) \r\n2 Secondary Storage(次存储装置) \r\n Application Switching(任务切换) \r\n Data Files(纯数据文件) \r\n Resource Files(纯资源文件) \r\n Packages(封包)\r\n Paging(分页) \r\n3 Compression(压缩) \r\n Table Compression(表格压缩) \r\n Difference Coding (差分编码)\r\n Adaptive Compression(自省式压缩) \r\n4 Small Data Structures(小数据结构)\r\n Packed Data(数据包捆)\r\n Sharing(共享) \r\n Copy-on-Write(临写复制) \r\n Embedded Pointers(内嵌式指针) \r\n Multiple Representations (多重表述) \r\n5 Memory Allocation(内存分配) \r\n Fixed Allocation(固定式分配) \r\n Variable Allocation(可变式分配) \r\n Memory Discard(内存抛弃) \r\n Pooled Allocation(池式分配) \r\n Compaction(夯实密合) \r\n Reference Counting(引用计数) \r\n Garbage Collection(垃圾回收) \r\n附录:关于Forces(作用力) \r\n 本书的Forces \r\n 与 “非功能型需求(non-functional requirements)”相关的forces \r\n 对体系结构的冲击(Architectural Impact)\r\n 对开发过程(Development process)的影响 \r\n参考书目(References) \r\n索引(Index)
Charles Weir:是一位面向对象软件体系结构方画的独立顾问。他曾经为Psion series 5 架构过EPOC网页浏览器,也担任过Symbian的技术指导,开发过两款智能移动电话。Charles特别擅长将实用技术灌输给开发人员,为电信业、信息系统、银行业提供顾问指导和设计协助。
James Noble:新西兰的一位面向对象软件设计模式专家。James曾经在Macquarie大学的微软研究协会做过面向对象设计方面的研究,建立起南半球第一个模式讨论群组(Patternscgroup)。目前授课于新西兰惠灵顿的Victoria大学。
侯捷:从事信息技术和教育工作十余年。目前兼课于台湾元智大学。
王飞:东北大学计算机系毕业,现就职于银行。
罗伟:华中科技大学自控系毕业,现在研究所就职。目前致力于面向对象思想在嵌入式开发环境中的应用。
从前, 计算机内存是地球上最昂贵的物品之一. 当时大量的人类智慧耗费在超新星爆炸模拟上, 全部的投入不过换得一个后来的诺贝尔奖得主和一大堆真空管. 可现在许多人的手持电话. 数位记事本或微波炉里的内存, 就足以模拟多数星系的毁灭.
但至少两件事在计算机历史中恒长不变. 软件设计依旧艰难(Gamma et al. 1995), 软件功能不断拓展以至填满所有可用内存(Potter 1948). 本书同时涉及这两个问题:模式(patterns)已被证实是记录软件设计知识的有效形式, 而本书所论的模式专门用来解决内存需求方面的问题.
身为本书作者, 我们的写作还有其他几个目的. 以模式研究人员和作家的身份, 我们希望多学一些模式和模式编写技巧, 以软件设计者(designers)和体系结构师(architects)的立场, 我们希望研究目前存在的系统并向它们学习. 更明确地说:
·我们希望获得并分享关于“可移植小容量内存技术”的全面而深入的知识, 这些技术在许多不同环境中都能发挥作用.
·我们希望写出一组完整的模式集, 目标单一而集中, 就是解决内存需求问题.
·我们希望研究这些模式之间的关系, 并根据这些关系将它们群组化. 次序化.
·我们想要一本亲和力高的书, 它让你感觉轻松有趣, 而不是让你活受罪.
本书就是我们的成果. 无论你在你的工作中是否遭遇内存的束缚, 它都是像我们这样的软件开发者和体系结构师的好帮手.
为使本书亲和力更强(也为写作带来乐趣), 我们以轻松的态度完成大部份模式示例, 并搭配Duane Bibby的漫画. 如果你对这些“轻浮的”:)东西不感兴趣, 请跳过漫画和示例描述 — 是的, 其他内容我们尽可能保持严肃.
本书仍在发展之中. 我们已经把许多人的建议和评论纳入, 欢迎更多指教. 您可以在我们的网站上与我们联系, 网址是http://www.smallmemory.com/