java设计模式
Bonsour
come on.
展开
-
java设计模式:二、观察者模式
观察者模式这个模式,在《Head First 设计模式》中以一个气象更新为例来讲的。书中讲的还是不错的,我在这儿总结的时候,不原文照搬了。根据在工作中的运用,以一个贴近工作的例子来总结一下这个所谓的观察者模式。模式介绍观察者模式,主要是订阅者和被订阅者之间的关系。当被订阅者发生变化时,订阅者能及时知道它发生了变化。比如我平时喜欢去优酷看一些不错的视频,如果有哪个频道做的节目不错,我就会原创 2017-05-23 20:22:16 · 277 阅读 · 0 评论 -
Java设计模式:七、适配器模式
适配器模式适配器模式,主要用来适配接口。 适配器用法 编故事编的好一点儿的话。假如现在餐厅可以做烤鸭,也可以做烤鸡。它们的做法相同,只是产品不同。一个顾客想要一只烤鸭,但是凑巧,鸭子没了,可以使用烤鸡来代替。但是客户只认鸭子,不认烤鸡,直接使用烤鸡的接口,来让客户下订单,客户肯定不干。所以,需要将烤鸡的接口适配为烤鸭的接口。在这儿: 烤鸭为目标接口,烤鸡为被适配的接口。public inter原创 2017-06-15 19:38:30 · 257 阅读 · 0 评论 -
Java设计模式:八、外观模式
外观模式外观模式主要是将一系列的操作方法封装成一个单独的方法提供给客户端使用。 例如: 一个超级电影院,播放电影一共包含以下几个方法:放下屏幕,打开放映机,插入CD,打开播放器,调整音量,开始播放。 定义一个电影院对象:public class Movie { public void putScreen(){ System.out.println("放下屏幕");原创 2017-06-15 20:28:38 · 246 阅读 · 0 评论 -
java设计模式:一、策略模式
策略模式我的设计模式的学习,是通过《Head First设计模式》这本书来学习的。在学习的过程中,自己再总结一遍。如果在这儿有什么错误或者不同的见解,希望指出。鸭子应用先模拟一个应用,根据这个应用的实现方式来引出模式。 简单构思一个鸭子的应用。鸭子会叫,鸭子会游泳。不同的鸭子,长得不同。假设现在存在外观是黄色的黄头鸭和外观是红色的红头鸭。那么这个鸭子类可以定义为如下:/** * 定义抽象类鸭子。原创 2017-05-20 15:12:44 · 404 阅读 · 0 评论 -
Java设计模式:九、生成器模式
生成器模式就这几天,花了两天辛辛苦苦写了一个导出数据的需求。换了好几种方案(在这之前我并没有看过生成器模式)。然后最终我把方案的实现定格在了策略模式。今天突然看到生成器模式,我在想,它们究竟有什么不同呢。需求 先描述一下这个导出数据的需求: Java Web项目,将数据库的某张表根据不同的条件将数据导出为不同格式的文件。比如Excel文件、CSV文件。 实现的基本步骤是: 读取需要导出的数据原创 2017-06-19 20:17:20 · 302 阅读 · 0 评论 -
Java设计模式:四、工厂模式
工厂模式一、简单工厂模式传统的生成对象方式为new形式,如果一个接口有多个不同的实现类,根据不同的类型new不同的对象,常见的形式为if语句或switch语句来new对象。比如:推送微信消息,有一个抽象的实体类:SendMsg,其中有一个抽象方法为sendMsg()。给微信推送消息,可以推送模板消息,也可以推送图文消息。暂时有这两个子类。所以,类的基本形式如下:public abstr原创 2017-06-10 13:05:30 · 439 阅读 · 0 评论 -
java设计模式:五、单例模式
单例模式项目启动时,会有多个线程来访问。如果一个类是不能被改变的,如果不适用单例模式,每一个先知执行时创建一个对象。对象创建的多了,必然会引起内存泄漏。想想淘宝网站,双十一零点,几百万人访问淘宝,单个类,被创建了几百万次,即使内存不泄露,访问也会比较缓慢。 所以,应该尽可能把一些不能被改变的类,设计成单利模式。 单例模式和上面的工厂模式一样,如果引入了spring,基本已经被spring代替了。原创 2017-06-12 15:30:23 · 219 阅读 · 0 评论 -
Java设计模式:六、命令模式
命令模式需求假设现在有一个智能遥控器,用来控制房间的一些电子产品。数字键0-9分别有不同的动作。 假如数字1,用来打开客厅电灯,数字2关闭客厅电灯。数字3打开卧室电灯,数字4关闭卧室电灯。数字5打开电视,数字6关闭电视。如果有这样一个需求,如何实现会比较简单呢。分析 上述简述包含两种不同的对象。一是遥控器,用来操作对应的电子装置,二是电子装置,被遥控器操控。 先来定义这些电子装置:/** *原创 2017-06-14 20:10:55 · 223 阅读 · 0 评论 -
Java设计模式:三、装饰者模式
工作一年多了,学习完装饰者模式,然后仔细想了想,好像以前的工作过程中也没有遇到过类似装饰者模式的例子,想找一个实际例子来温习一下,还真难。 偶然想起之前参与过的一个小任务订单活动的任务,我们这边在开发活动规则,另一个同事在通过活动来计算金额。想想,这儿计算金额的例子,倒是可以勉强用用。大概背景一个类似淘宝一样的销售系统,商户可以在某一段时间内发起活动吸引顾客购买。活动包括: - 商品活动 (针对原创 2017-05-31 17:00:22 · 363 阅读 · 0 评论