设计模式 之 工厂模式总结

作者:Pitty     分类:设计模式     标签:     时间:2014.06.05     浏览:56     评论:0

依旧是拾人牙慧,以前看过Head first的设计模式,不过只知道了些概念,要编写起来还是得Google,我这破脑袋哈~~ 不过这次仔细阅读了下工厂模式的东东,也把它写到了代码之中,算是有了一定的了解了。 下面是结合两篇博客的总结~~ http://blog.csdn.net/ai92/article/details/209198 http://blog.csdn.net/ipqxiang/article/details/1955677 依旧拷贝一遍 防丢~ 一、引子话说十年前,有一个暴发户,他家有三辆汽车——Benz奔驰、Bmw宝马、Audi奥迪,还雇了司 [...]   阅读全文


策略模式设计的报警服务

作者:如果爱忘了     分类:设计模式     标签:     时间:2014.06.05     浏览:42     评论:0

  每当听到设计模式这个名词时,都觉得离着自己好远,有种遥不可及的感觉。当有一天,我在公交车上看到策略模式的时候,瞬间就想到原来,我在工作中已经用到过了设计模式,只是不自知而已。下面,我把我用策略模式写的一个报警服务归纳总结一下,希望能够给还在迷茫中的小程序猿们一点点启发,嘻嘻。   我介绍一下我这个小服务的功能:这个服务就是能够实现多通路报警的服务,比如邮件报警、客户端报警、短信报警等,该服务灵活性还不错,比较方便扩展。具体如何报警我就不在这说啦,有兴趣的同学可以自己研究,我着重说一下策略模式。首先需要定义一个接口,该接口用来统一报警方法,代码如下: /// <summary& [...]   阅读全文


C++设计模式——代理模式

作者:宁采臣     分类:设计模式     标签:     时间:2014.06.05     浏览:72     评论:0

前言 青春总是那样,逝去了才开始回味;大学生活也是在不经意间就溜走了,现在上班的时候,偶尔还会怀念大学时,大家在一起玩游戏的时光。大学喜欢玩游戏,但是可悲的校园网,速度能把人逼疯了;还好,后来搞了一个游戏代理,总算能勉勉强强的玩了两年。时至今日,敲起键盘写设计模式的时候,又想起了那些美好的时光。好了,这是一篇技术文章,而不是抒情怀旧的散文;思绪再回到这篇文章上来,游戏代理,是个什么东西,有了它就能让我们玩游戏的延迟立马下来了。今天,我并不会去总结游戏代理是如何实现的,重点是通过游戏代理这个例子来总结设计模式中的代理模式。 什么是代理模式? 在GOF的《设计模式:可复用面向对象软件的基础》 [...]   阅读全文


IOS设计模式浅析之外观模式(Facade)

作者:Gof Lee     分类:设计模式     标签:     时间:2014.06.05     浏览:60     评论:0

引言     在项目开发中,有时候会遇到这样的一种情景:已有系统的各个子系统之间,随着业务需求的发展,有了比较紧凑的耦合关系。现在需要利用这些子系统的功能,为移动端提供业务处理。我们该怎么应对这样的业务需求呢?这就是本章外观模式所要解决的问题。   进入正式讲解前,我们先来分析一下两种应对如上业务需求的方式:   方式一:移动端直接调用各个子系统的功能,和各个子系统之间形成紧耦合的关系,如下图所示:   方式二:提供一个高层接口,该高层接口负责和子系统进行交互,并向移动端提供需要使用的接口,如下图所示:   从上面两种方式的图式结构可以看到,对移动端来说,方式二比方式一要好用 [...]   阅读全文


领域逻辑模式

作者:robynhan     分类:设计模式     标签:     时间:2014.06.05     浏览:69     评论:0

Transaction Script 使用过程来组织业务逻辑,每个过程处理来自表现层的单个请求. 运行机制 尽可能将其放置于与表现层和数据源层隔离的类中. 为了便于修改和测试,不能调用任何表现层逻辑. 组织成类 一个类,围绕一个主题将相关事务脚本组织在一起. Command模式.一个事务脚本对应一个类. 优点:允许在运行时以对象的方式来操控脚本类的实例;便于解决线程相关问题. 使用时机. 胜在简单. 当业务逻辑复杂时,很难保持良好的设计.会出现事务之间的冗余代码的问题. Domain Model 合并 [...]   阅读全文


面向对象的五大设计原则:单一职责原则

作者:梁WP     分类:设计模式     标签:     时间:2014.06.05     浏览:63     评论:0

面向对象的五大设计原则:单一职责原则 ——@梁WP 一、单一职责原则   名称:单一职责原则,SRP,Single Responsibility Principle   定义:一个类,最好只做一件事,只有一个引起它变化的原因。   反例:以下举一个反例(这只是部分代码)。这段代码的问题在于,一般人是不会把数据库操作、业务逻辑、控制跳转放在一起的。虽然这样的编码没有任何错误,但是万一要修改,就不得不把所有代码给重新看一遍了,在团队开发中非常不便。这个类如果要修改的话,它就有三个修改的原因:数据库操作修改的原因、业务逻辑修改的原因、控制跳转修改的原因,这就 [...]   阅读全文


OO之装饰者模式

作者:沦落凡间     分类:设计模式     标签:     时间:2014.06.05     浏览:69     评论:0

以下为装饰者模式详解: 引子: 假如有一个快餐店,基本种类分为米饭,水饺,粉面等,但每一种类型的快餐又可以搭配不同的料,如米饭可以点各种不同的菜(排骨,青菜,土豆等),如果按照一般的设计,快餐为基类,加不同的料的搭配为一个类,分别继承到基类,那么N种搭配就有N个类,这是类的爆炸。 要解决这个问题我们就可以用装饰者模式了,首先来了解一个OO设计原则:类对扩展的开放,对修改的关闭。这并不矛盾,像上面的类爆炸子类的行为(继承)是在编译时就静态决定了的,且所有子类都会继承到相同的行为,要解决问题就要做到动态的扩展,在类进行扩展时不修改现有的代码而添加新的行为,这样就要动态的组合对象,弹性的应 [...]   阅读全文


代理模式(静态代理和动态代理)

作者:家乐福海盗     分类:设计模式     标签:     时间:2014.06.05     浏览:57     评论:0

一、 Proxy模式定义:为其他对象提供一种代理以控制这个对象的访问。二、 模式解说Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层,这个访问层也叫代理。Proxy模式是最常见的模式,在我们生活中处处可见,例如我们买火车票不一定非要到火车站去买,可以到一些火车票的代售点去买。寄信不一定是自己去寄,可以把信委托给邮局,由邮局 [...]   阅读全文


设计模式的六大原则读书笔记

作者:zhaofeng555     分类:设计模式     标签:     时间:2014.06.05     浏览:59     评论:0

1,开闭原则(Open Close Principle:OCP) 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行扩展时候,不能修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使用程序的扩展性好,易于维护和升级。使用接口和抽象类达到这样的效果。 2,里氏代换原则(Liskov Substitution Principle) 里氏代换原则面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP是继承复用的基石只有当衍生类可以替换掉基类,软件单位的功能不受影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则 [...]   阅读全文


OO之工厂模式

作者:沦落凡间     分类:设计模式     标签:     时间:2014.06.05     浏览:49     评论:0

以下为工厂模式的详解,包括简单工厂,普通工厂模式,抽象工厂。 引子: 假设有一个交通工具公司,生产自行车,汽车,飞机等,现要销售该公司的产品,要怎么设计呢? 在交通工具商店中加一个if else判断如果是自行车就实例化(new)一个自行车,如果是汽车就实例化(new)一个汽车吗,当然不是,这样的话如果将来又加了多种交通工具那要更改每一个商店的代码,这样的话更改太多,我们应该把这部分可能变更的代码封装到另一个对象中,这个对象只管生产何种交通工具,要获得交通工具就用它。 简单工厂: 类图: 设计: /** * 抽像的交通工具类,里面有生产交通工具的过程方法(控制生产过 [...]   阅读全文


关于我

浅墨,80后程序猿,不善于前端,只会做后台。他也是地地道道的重庆崽儿,目前坐标广州。他和许多IT男一样不擅表达,也和许多摄影师一样喜欢文艺,喜欢旅行。只想记录生活写给未来的自己。

近期文章

文章归档

  1. 2015年08月 (17)
  2. 2014年06月 (6695)
  3. 2014年05月 (24)
  4. 2014年04月 (40)
  5. 2013年09月 (1)
  6. 2013年08月 (1)
  7. 2013年07月 (7)
  8. 2013年06月 (20)
  9. 2013年05月 (24)
  10. 2013年04月 (21)
  11. 2013年01月 (5)
  12. 2012年01月 (9)

标签

  1. struts2
  2. ssh
  3. wpf
  4. spring3
  5. hibernate4
  6. 数据库
  7. 串口
  8. sqlserver
  9. url重写
  10. windows应用商店应用
  11. 委托
  12. 匿名方法
  13. php
  14. 域名
  15. mysql
  16. iis
  17. Swift

随机推荐