命令模式

命令模式小故事:经过多年的努力,终于我成为了一名项目经理,现在我要带着我的团队去接活了。项目员工分为 需求组(RequirementGroup,RG)、美工组(PageGroup,PG)、代码组(CodeGroup,CG)。刚开始,客户也就是甲方,很乐意和我们每个组探讨,比如和需求组讨论需求、和美工讨论页面、和代码组讨论实现,告诉他们增删改查的各种内容等。这是比较常见的甲乙方合作模式,甲方深入到乙方...
阅读(161) 评论(0)

设计模式之中介者模式

场景一个公司的“进销存“买IBM电脑系统设计,销售部门要反馈销售情况,畅销的就多采购,滞销就不采购;销售前要确定库存有货才能销售。采购部门要根据销售情况和库存情况进行采购。库存情况要根据销售情况和采购情况维护库存量。根据库存量来决定是否要打折出售。“进销存“三个模块都有自己的香味,并且与其他的模块之间行为产生关联,类似我们的办公室“同事“各干各的活,但是彼此之间有依赖、交叉,于是彼此之间就产生紧耦合...
阅读(239) 评论(0)

原型模式

场景假设现在我需要发送1000W封邮件,我使用多线程发送邮件(单线程的话,发完邮件我也入土了,时间太久。),我创建了一个邮件对象,每次给邮件对象赋值,然后发送出去,但是使用多线程,就遇到了线程安全问题,当线程一,创建好邮件对象后,还没有进行发送邮件操作时,线程二 又对邮件对象进行了赋值,然后线程一开始发送邮件,此时线程一发送的邮件对象,其实已经是线程二赋值的邮件对象了。那么怎么通过设计模式解决这个问...
阅读(175) 评论(0)

模板方法模式

假设公司是做玩具模型生产的,公司的主要业务就是把实物按照一定的比例缩小或放大,用于试验、分析、量化或者是销售,等等, 需求: 现在负责在一个星期的时间把这批10万车模(注:车模是车辆模型的意思,不是香车美女那个车模)建设完成……”只做最基本的实现,不考虑太多的问题,怎么样?”老大又把我弹回去了。 既然领导都说了,不考虑扩展性,那好办,先按照最一般的经验设计类图,如图10-1所示。非常简单的实现...
阅读(400) 评论(0)

代理模式的扩展

设计模式中的普通代理和强制代理也是类似的一种结构,普通代理就是我们要知道代理的存在,也就是类似的GamePlayerProxy这个类的存在,然后才能访问;强制代理则是调用者直接调用真实角色,而不用关心代理是否存在,其代理的产生是由真实角色决定的,这样的解释还是比较复杂,我们还是用实例来讲解。普通代理它的要求就是客户端只能访问代理角色,而不能访问真实角色,这是比较简单的。我们以上面的例子作为扩展,我自...
阅读(398) 评论(0)

代理模式

定义 :为其他对象提供一种代理以控制对这个对象的访问。玩了一段时间的网络游戏,游戏名就不说了,反正就是打怪、升级、砍人、被人砍,然后继续打怪、升级、打怪、升级……我花了两个月的时间升到80级,已经很有成就感了,但是还会被人杀死,高手到处都是,GM(Game Master,游戏管理员)也不管,对于咱这种非RMB玩家基本上都是懒得搭理。在这段时间我是体会到网络游戏的乐与苦,参与家族(工会)攻城,胜利后那...
阅读(415) 评论(0)

抽象工厂方法模式

讲了女娲造人的故事。人是造出来了,世界也热闹了,可是低头一看,都是清一色的类型,缺少关爱、仇恨、喜怒哀乐等情绪,人类的生命太平淡了,女娲一想,猛然一拍脑袋,忘记给人类定义性别了,那怎么办?抹掉重来,于是人类经过一次大洗礼,所有的人种都消灭掉了,世界又是空无一物,寂静而又寂寞。由于女娲之前的准备工作花费了非常大的精力,比如准备黄土、八卦炉等,从头开始建立所有的事物也是不可能的,那就想在现有的条件下重新...
阅读(369) 评论(0)

工厂方法模式的扩展

工厂方法模式有很多扩展,而且与其他模式结合使用威力更大,下面将介绍几种扩展。1. 缩小为简单工厂模式我们这样考虑一个问题:一个模块仅需要一个工厂类,没有必要把它产生出来,使用静态的方法就可以了,根据这一要求,我们把上例中的AbstarctHumanFactory修改一下,类图如我们在类图中去掉了AbstractHumanFactory抽象类,同时把createHuman方法设置为静态 类型,简化了...
阅读(448) 评论(0)

工厂方法模式

工厂模式定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。东汉《风俗通》记录了一则神话故事:“开天辟地,未有人民,女娲搏黄土做人”,讲述的内容就是大家非常熟悉的女娲造人的故事。开天辟地之初,大地上并没有生物,只有苍茫大地,纯粹而洁净的自然环境,寂静而又寂寞,于是女娲决定创造一个新物种(即人类)来增加世界的繁荣,怎么制造呢? 别忘了女娲是神仙,没有办不...
阅读(707) 评论(0)

设计模式导读

什么是设计模式。 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。(简单说设计模式就是经验的总结)这个东西可以重复的使用相当于十个模型,比如说我想做个蛋糕,我看到一个巧克力蛋糕特别漂亮,我想做一个类似的蛋糕,我只要有蛋糕这个模型就可以了。我就可以做出一样的蛋糕出来。同理设计模式就类似这样一个东西。我模仿着它就能做出符合某种规则的东西来。其...
阅读(1022) 评论(0)

敏捷开发

敏捷开发是一种以人为核心,以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,小周期可完成的任务,这样的一个周期就是一次迭代的过程;同时每一次迭代都可以生产或开发出一个可以交付的软件产品。在此过程中软件一直处于可使用状态。为什么说是以...
阅读(381) 评论(0)
    个人资料
    • 访问:640189次
    • 积分:9011
    • 等级:
    • 排名:第2312名
    • 原创:305篇
    • 转载:34篇
    • 译文:0篇
    • 评论:209条
    博客专栏