Edward_jie

for you, my Hall of Frame

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  92 随笔 :: 45 文章 :: 539 评论 :: 43万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

06 2012 档案

摘要:意图 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。场景 我们在制作一个网上书店的网站,用户在书店买了一定金额的书后可以升级为银会员、黄金会员,不同等级的会员购买书籍有不同的优惠。你可能会想到可以在User类的BuyBook方法中判断用户历史消费的金额来给用户不同的折扣,在GetUserLevel方法中根据用户历史消费的金额来输出用户的等级。带来的问题有三点:l 不用等级的用户给予的优惠比率是经常发生变化的,一旦变化是不是就要修改User类呢?l 网站在初期可能最高级别的用户是黄金会员,而随着用户消费金额的累计,我们可能要增加钻石、白金等会员类型,这些会员的折扣又是不 阅读全文
posted @ 2012-06-13 13:20 Edward_诺 阅读(3242) 评论(0) 推荐(1) 编辑

摘要:意图 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。场景 在电脑城装机总有这样的经历。我们到了店里,先会有一个销售人员来询问你希望装的机器是怎么样的配置,他会给你一些建议,最终会形成一张装机单。和客户确定了装机配置以后,他会把这张单字交给提货的人,由他来准备这些配件,准备完成后交给装机技术人员。技术人员会把这些配件装成一个整机交给客户。 不管是什么电脑,它总是由CPU、内存、主板、硬盘以及显卡等部件构成的,并且装机的过程总是固定的:l 把主板固定在机箱中l 把CPU安装到主板上l 把内存安装到主板上l 把硬盘连接到主板上l 把显卡安装到主板上但是,每台兼容机的部件都各不 阅读全文
posted @ 2012-06-11 17:58 Edward_诺 阅读(1928) 评论(0) 推荐(0) 编辑

摘要:抽象与实现抽象不应该依赖于实现细节,实现细节应该依赖于抽象。问题在于如果抽象B由于固有的原因,本身并不稳定,也有可能变化,怎么办?举例来说假如我们需要开发一个同时支持PC和手机的坦克游戏,游戏在PC和手机上功能都一样,都有同样的类型,面临同样的功能需求变化,比如坦克可能有很多种不同的型号:T50,T75,T90……对于其中的坦克设计,我们可能很容易设计出来一个Tank的抽象基类,然后各种不同型号的Tank继承自该类;另外的变化原因但是PC和手机上的图形绘制、声效、操作等实现完全不同……因此对于各种型号的坦克,都要提供各种不同平台上的坦克实现:这样的设计会带来很多问题:有很多重复代码,类的结构过 阅读全文
posted @ 2012-06-07 19:24 Edward_诺 阅读(1936) 评论(0) 推荐(0) 编辑

摘要:一、概述 当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为对象。 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 二、对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 我们经常需要将对象的字段值保存到磁盘中,并在以后检索此数据。尽管不使用序列化也能完成这项工作,但这种方法通常很繁琐而且容易出错,并且在需要跟踪对象的层次结构时,会变得越来越复杂。可以想象.. 阅读全文
posted @ 2012-06-02 00:38 Edward_诺 阅读(4478) 评论(0) 推荐(1) 编辑

摘要:意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 场景 游戏场景中的有很多相似的敌人,它们的技能都一样,但是随着敌人出现的位置不同,这些人的能力不太一样。假设,我们现在需要把三个步兵组成一队,其中还有一个精英步兵,能力特别高。那么,你或许可以创建一个敌人抽象类,然后对于不同能力的步兵创建不同的子类。然后,使用工厂方法等设计模式让调用方依赖敌人抽象类。 问题来了,如果有无数种能力不同步兵,难道需要创建无数子类吗?还有,步兵模型的初始化工作是非常耗时的,创建这么多步兵对象可能还会浪费很多时间。我们是不是可以通过只创建一个步兵原型,然后复制出多个一摸一样的步兵呢?复制后... 阅读全文
posted @ 2012-06-01 14:37 Edward_诺 阅读(3109) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示