开发管理
hcqi2004
这个作者很懒,什么都没留下…
展开
-
二、观察者模式/订阅者模式
气象监测应用的概念此系统中的三个部分是气象站(获取实际气象数据的物理装置)、WeatherData对象(追踪来自气象站的数据,并更新布告板)和布告板(显示目前天气状况给用户看)感应装置------气象站ß-(获取数据)--- WeatherData对象---(显示)---显示装置 WeatherData对象跟物理气象站联系,取得更新的数据。WeatherData对象会随即更新三个布转载 2015-05-12 15:59:18 · 525 阅读 · 0 评论 -
十、迭代器和组合模式
把迭代器模式和组合模式放在同一篇的原因是其联系比较紧密。一、迭代器模式1.1迭代器模式定义迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而不是暴露其内部的表示。这个模式提供了一种方法,可以顺序访问一个聚合对象中的元素,而不用知道内部怎么表示的。为了更好的理解迭代器模式,我们举个例子。1.2迭代器例子下面使用head first设计模式中转载 2015-06-15 20:27:57 · 568 阅读 · 0 评论 -
八、外观模式
2.1外观模式的定义外观模式定义:外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。外观模式让我想起了一套设备,不知道大家有没有照过大头贴,我是没有照过,但是我见过照大头贴的设备。其是由电脑,打印机,白炽灯,相机组成,基本的操作是:打开电脑,打印机,白炽灯,相机设备,然后按一下拍照开关,接着点击打印,照片就出来了,最终关闭所有转载 2015-06-14 10:10:53 · 568 阅读 · 0 评论 -
七、适配器模式
适配器模式定义:将一个类的接口,转化成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。 我们周围的适配器最常见的例子是三孔插座和两孔插座,如果墙上有一个三孔插座,但是我们的充电器又只能使用两孔的插座,那么我们通常是接一条带有两孔和三孔的插座其插头是三个的,以适应不同的需求。 面向对象适配器假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个转载 2015-06-14 10:08:44 · 547 阅读 · 0 评论 -
十一、状态模式
我们在做某一些操作的时候,遇到不同状态的时候就会有不同的处理方式。为了判别这些状态,我们必然会使用大量的if else语句来做状态判断处理。而随着if else(或switch case)语句的增多,程序的可读性,扩展性也会变得很弱。维护也会很麻烦,你可能看到过有的代码中 一个函数就有n多if语句,代码甚至超过了上千行。 举一个例子:我们给一部手机打电话,就可能出现这几种情况:用转载 2015-06-18 20:17:07 · 436 阅读 · 0 评论 -
五、单例模式
单间模式确保一个类只有一个实例,并提供一个全局访问点。 有些对象其实只需要一个,像:线程池、缓存、注册表的对象,打印机,显卡等设备的驱动程序的对象。这些类对象只能有一个实例,如果出现多个实例,就会产生许多问题。 很多时候可以通过程序员的约定或使用全局变量来保证只实现一个实例,但这可能会出现一些问题,如果将对象赋值给一个全局变量,程序需要在一开始就创建对象,要是这个对象非常耗费资源,而后面又转载 2015-05-17 21:19:47 · 543 阅读 · 0 评论 -
六、命令模式
、 命令(Command)模式 命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派转载 2015-05-17 23:08:00 · 416 阅读 · 0 评论 -
四、工厂模式
工厂模式定义:提供创建对象的接口.有工厂方法和抽象工厂统一管理对象的创建过程降低耦合 假设你有一个披萨店,你的代码可能这么写:Pizza orderPizza(){Pizza pizza = new Pizza();pizza.prepare();pizza.bake();pizza.cut();pizza.box();return pizza;转载 2015-05-15 20:30:29 · 476 阅读 · 0 评论 -
三、装饰者模式
星巴克咖啡店问题因为扩张速度太快,他们准备更新订单系统,以合乎他们的饮料供应要求。他们原来的类设计是这样的。 。 。 。 。 。Beverage //(饮料)是一个抽象类,店内所提供的饮料都必须继承自此类description //这个变量,由子类设置,用来描述饮料,例如“超优深焙(Dark roast)咖啡豆”getDescription()//返回descripti转载 2015-05-13 19:55:14 · 609 阅读 · 0 评论 -
一、策略模式
//来自《Head First 设计模式》先从简单的模拟鸭子应用做起 Joe是一名程序员,为一家公司开发模拟鸭子游戏,该公司的主要产品是一种可以模拟展示多种会游泳和呷呷叫的鸭子的游戏。这个游戏是使用标准的面向对象技术开发的,系统里所有鸭子都继承于Duck基类,系统的核心类图如下: Duck基类里实现quack()和swim()方法,而Mallar转载 2015-05-12 15:24:35 · 481 阅读 · 0 评论 -
九、模板方法模式
1. 概述 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。2. 模式中的角色 2.1 抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。 2.2 具体类(ConcreteClass):实现抽象类中的抽象方法,已完成完整的算法。3. 模式解读 3.1转载 2015-06-15 19:33:40 · 467 阅读 · 0 评论