![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java设计模式
float_yy
键盘敲烂,年薪百万
展开
-
Head First 设计模式总结(一)策划者模式
本文对《Head First 设计模式》中的策划者模式进行了总结策划者模式问题描述: 一款模拟鸭子游戏,要求运行时能产生各种不同的鸭子(绿头鸭子,红头鸭子,橡皮鸭子),现在要求一部分鸭子具备飞行功能。错误的做法1:一个公司程序员采用了继承的方法,让所有鸭子继承超类Duck,然后在Duck中加上了fly(),swim(),quack()等方法,产生了可怕的结果,(橡皮鸭会飞了)。这使得一些鸭...原创 2018-10-13 16:44:29 · 141 阅读 · 0 评论 -
Head First 设计模式总结(九) 迭代器模式
本文对迭代器模式进行了概括和总结前言有许多种方法可以把对象堆起来成为一个集合(collection),你可以把它们放进数组、堆栈、列表或者是散列表中,这是你的自由。每一种都有它自己的优点和合适的使用时机,但当你的客户想要遍历你的对象时,你打算让客户看到你的实现吗?我们当然希望最好不要。在本章中你将学习如何能让客户遍历你的对象而又无法窥视你存储对象的方式;也将学习如何创建一些对象超集合,能够一...原创 2018-11-24 16:48:09 · 195 阅读 · 0 评论 -
Head First 设计模式总结 (八) 模板方法模式
本文基于《Head First 设计模式》一书,对模板方法模式进行了概括和总结。模板方法模式——在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。这个模式是用来创建一个算法的模板。什么是模板?模板就是一个方法。更具体地说,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。这可以确保算法的...原创 2018-11-04 16:12:18 · 224 阅读 · 0 评论 -
Head First 设计模式总结(四) 工厂模式
本文基于《Head First 设计模式》对工厂模式进行了概括和总结工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂方法模式定义了一个创建对象的接口,但由于子类决定要实例化的类是哪一个。工...原创 2018-11-02 19:10:03 · 240 阅读 · 0 评论 -
Head First设计模式总结(五) 单件模式
本文基于《Head First 设计模式》一书,对单件模式进行了概括和总结单件模式确保一个类只有一个实例,并提供一个全局访问点有一些对象我们只需要一个,比方说:线程池(threadpool)、缓存(cache)、对话框、处理偏好设置和注册表(registry)的对象、日志对象,充当打印机、显卡等设备的驱动程序的对象。事实上,这类对象只能有一个实例,如果制造出多个实例,就会导致许多问题产生,例如...原创 2018-11-03 10:19:22 · 149 阅读 · 0 评论 -
Head First 设计模式总结(三) 装饰者模式
本文对装饰者模式进行了概括和总结装饰者模式动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。一旦你熟悉了装饰的技巧,你将能够在不修改任何代码的前提下,给你的(或别人的)对象赋予新的职责。问题描述有一家名为“星巴兹咖啡”的咖啡店,随着饮品种类的增加,他们的订单系统需要更新。现在有四种咖啡种类:HouseBlend、DarkRoast、Decaf、Espresso...原创 2018-10-19 15:46:11 · 151 阅读 · 0 评论 -
Head First 设计模式总结(六) 命令模式
本文总结了《Head First 设计模式》中的命令模式命令模式——将请求封装成“对象”,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持撤销操作。...原创 2018-10-15 19:59:02 · 743 阅读 · 0 评论 -
Head First 设计模式总结(七) 适配器模式
本文基于《Head First 设计模式》对其中的适配器模式予以总结适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。问题描述:假设有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是新厂商设计出来的接口与旧厂商不同。而你又不想改变现有的代码,该怎么办?答案:写一个适配器类,将新厂商接口转换成你期望的接口。下面先利用适配器完成一个简单的转...原创 2018-10-18 15:52:45 · 362 阅读 · 0 评论 -
Head First 设计模式总结(二)观察者模式
本文对《Head First 设计模式》中的观察者模式进行了概括和总结观察者模式——在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖他的对象都会收到通知,并自动更新。问题描述要求公司建立一个 气象数据站 (WeatherData对象),使之能从 气象观测站 (WeatherStation对象)获取气象数据(温度temperature,湿度humidity,气压值pressure...原创 2018-10-13 20:26:27 · 173 阅读 · 0 评论 -
Head First 设计模式总结(十) 组合模式
组合模式——允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。本文的例子沿用了前一节《Head First 设计模式总结(九) 迭代器模式》中菜单和菜单项的例子。组合模式能够创建一个树形结构:本例是准备在同一个结构中处理嵌套菜单和菜单项组,实现为菜单项添加子菜单。通过将菜单和项放在相同的结构中,我们创建了一个“整体/部分”层次结构,...原创 2018-11-25 21:16:22 · 620 阅读 · 0 评论