设计模式
yin1031468524
喜欢打篮球,听歌
展开
-
《Head first设计模式》学习笔记 – 单件模式
单件模式确保一个类只有一个实例,并提供一个全局访问点。有一些对象我们只需要一个,比方说:线程池、缓存、对话框、处理器偏好设置和注册表的对象等等。事实上,这类对象只能有一个实例,如果制造出多个实例,就会导致许多问题产生,例如:程序的行为异常、资源使用过量,或者是不一致的结果。使用静态变量如何确保这些类只存在一个实例?利用java的静态变量可以做到,但使用静态变量有个缺点:如果转载 2017-02-20 16:54:58 · 852 阅读 · 0 评论 -
《Head first设计模式》学习笔记 – 观察者模式
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。客户有一个WeatherData对象,负责追踪温度、湿度和气压等数据。现在客户给我们提了个需求,让我们利用WeatherData对象取得数据,并更新三个布告板:目前状况、气象统计和天气预报。WeatherData对象提供了4个接口:getTemperature():获取温度转载 2017-02-22 21:43:08 · 761 阅读 · 0 评论 -
《Head first设计模式》学习笔记 – 工厂方法模式
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到了子类。预定披萨假设你有一个披萨店,预定披萨的代码可能是这么写的:Pizza orderPizza(){ Pizza pizza = new Pizza(); // 准备面皮,加调料等 pizza.prepare(); // 烘烤 piz转载 2017-02-24 10:28:44 · 972 阅读 · 0 评论 -
《Head first设计模式》学习笔记 – 策略模式
策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。假设有一个模拟鸭子的游戏,游戏中会出现各种鸭子,一边游泳戏水,一边呱呱叫。这个游戏的内部设计了一个鸭子超类Duck,并让各种鸭子继承此超类。123456789public转载 2017-02-16 10:37:37 · 1066 阅读 · 0 评论 -
《Head first设计模式》学习笔记 – 抽象工厂模式
抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。确保原料的一致披萨店成功的关键在于新鲜、高质量的原料。要如何确保每家加盟店使用高质量的原料?你打算建造一家生成原料的工厂,并将原料运送到各家加盟店。对于这个做法,现在还剩下一个问题:加盟店坐落在不同的区域,纽约的红酱料和芝加哥的红酱料是不一样的。加盟店之间有相同的产品家族(意式腊肠、酱料、芝士、蔬菜等等转载 2017-03-05 17:10:56 · 888 阅读 · 0 评论 -
《Head first设计模式》学习笔记 – 适配器模式
我们周围的适配器如果你需要在欧洲国家使用美国制造的笔记本电脑,你可能需要使用一个交流电的适配器。你知道适配器的作用:它位于美式插头和欧式插座的中间,它的工作是将欧式插座转换成美式插座,好让美式插头可以插进这个插座得到电力。或者也可以这么认为:适配器改变了插座的接口,以符合美式笔记本电脑的需求。好了,这是真实世界的适配器,那面向对象适配器又是什么呢?其实,OO适配器和真实世界的适配器转载 2017-02-27 17:06:41 · 690 阅读 · 0 评论 -
《Head first设计模式》学习笔记 – 命令模式
一个家电公司想邀请你设计一个家电自动化遥控器的API。这个遥控器有7个可编程的插槽,每个都可以指定到一个不同的家电装置。每个插槽都有对应的“打开”和“关闭”按钮。这个遥控器还具备一个整体的撤销按钮。现在已经有一组Java类,这些类是多家产商开发出来的,用来控制家电自动化装置,例如电灯、风扇、热水器、音响设备和其他类似的可控制装置。你要做的是创建一组控制遥控器的API,让每个插槽都能够控转载 2017-03-07 17:18:36 · 661 阅读 · 0 评论