![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 74
iteye_2259
这个作者很懒,什么都没留下…
展开
-
我的设计模式--策略模式
策略模式简解:我们还是以娱乐圈的那些事来做例子电影名: 名词解释:顾名思义,策略模式就是将一定的算法或者一定的解决方案抽象成一个策略,在调用时候进行切换。主要参与者: 1.演员:一个标记为某个策略的借口,定义些公用的方法。每次必出场。 2.主演:具体策略的实现者,实现策略借口。 3.导演:决定谁出场,必须拥有所有演员的名单,即持有一个策略接口的应用。...原创 2010-05-18 19:42:37 · 74 阅读 · 0 评论 -
我的设计模式--工厂方法2
以上就是我们在好莱坞拍电影的基本要求了,但是有没这种可能呢?就是同时又两个出品人同时在拍泰坦尼克号,这样会不会造成资源的浪费呢。所以我们改写工厂方法。 public class MovieFactory { private static Map movies = new HashMap(); public static Movi...原创 2010-08-02 18:58:07 · 56 阅读 · 0 评论 -
我的设计模式--工厂方法1
我们知道好莱坞是一个生产电影的地方,每年许多精彩大片都是从这里出来的,同时也产生了许许多多的明星大牌。可以认为是一个生产电影的工厂。好,接下来我们仔细看下好莱坞出来的电影,老的有泰坦尼克号,珍珠港。这类可以归结为剧情片。稍微近的有金刚、阿发达。这类可以归结为科幻片。那是不是可以将这些抽象成一个我们软件中的对象呢。模型抽象:1.好莱坞:电影工厂2.电影 :电影类型的抽象...原创 2010-08-02 18:57:47 · 69 阅读 · 0 评论 -
我的设计模式--适配器2
替身,也就是导演想要的那个人:是个好MM,我是这么认为的。public class HH implements GoodMM{ private ZhangZhiYi xiaozhang; //会演戏,叫章子怡来演高难度情感戏 public void play() { ...原创 2010-08-02 18:56:56 · 71 阅读 · 0 评论 -
我的设计模式--适配器1
适配器模式适配器分为对象适配器和类适配器类适配器:就是在适配的时候采用继承的方式来获取适配信息对象适配器:就是采用组合的方式来获取适配信息嗯,我们今天又要开始拍电影了。话说导演决定在悬崖边排场戏。具体情景是这样的,哦,忘记交代这次的主演了。是我们的人见人爱,花见花开的章子怡MM了。首先章MM要跟老刘跟小金三人发生一段让人不得不说的故事,就是章MM在不停的生与死中挣扎...原创 2010-08-02 18:56:13 · 55 阅读 · 0 评论 -
我的设计模式--模板方法2
以上就是我们的模板方法了,典型特点就是采用了继承的方式来处理,而不是委托的方式。从上面的代码中,我们可以看出,我们将顶级方法定义为fianl,这样子类就无法修改该方法,就达到了顶级规则不允许改变的原则。同时将被实现的方法修饰了protect,如果是为子类及同包的类才能继承,达到权限控制的目的。因为客户端不关心这些方法。比较常见的模板方法就是servlet。 加载--init--ser...原创 2010-08-02 18:54:29 · 70 阅读 · 0 评论 -
我的设计模式--模板方法1
在好莱坞混过的人都会了解一个原则。当你把简历递交给娱乐公司后,这些公司会告诉他们一句话:不要给我们打电话,我们会给你打。这个就是传说中的好莱坞原则,关键之处在于娱乐公司对娱乐项目的完全控制,演员只能被动的服从总项目的安排,在需要的时候完成流程中的某一个环节。就是娱乐公司制定了一个顶级的规则。参与者不能修改,只能被动接受。好,我们先来看《阿凡达》的一些基本场景,这些是娱乐公司的编辑已...原创 2010-08-02 18:53:57 · 84 阅读 · 0 评论 -
我的设计模式--单例模式
这个来说,相对简单一点,就是要求定义的这个角色是独一无二的。还是拿电影来说吧,一部电影可能有多个摄像、场记、演员。但是,导演只会有一个。那么这个导演就是单例的。下面来看我们怎么让这个导演是独一无二的。public class Director { //导演的妈妈已经生了一个导演了,所以不能再出现了一个导演了 private Direc...原创 2010-08-02 18:52:27 · 69 阅读 · 0 评论 -
观察者模式梳理二
顾名思义就是观察者从被观察者身上拉取自己需要的数据!类结构图同拉的方式,不过具体代码上会有点区别!本案中被观察者接口和观察者接口我们采用的是JDK自带的API来写!里面已经考虑了多并发的情况。但是他的观察者是一个类,又因为java是单继承的,所以在这点稍微有点不好!但是想把一些基础的功能搞定的话,必须使用类来操作。矛盾啊!被观察者的实现package com.alibaba.test....2011-02-09 16:56:36 · 78 阅读 · 0 评论 -
观察者模式梳理一
需要几个关键角色 1.被观察对象(可观察对象)2.观察者观察者想要观察被观察对象,就需要两者之间建立一种一对多的关系。建立关系后,需要关注的一点就是如果将被观察者更新的消息传递给观察者。一种是推的方式,即被观察更新信息后,立刻把数据推给观察者。另一种是拉的方式,即观察者从被观察者那拉取数据。先看推的方式吧类图 : 一个可以被观察的接口 Obserable ,一个观察者 Obs...2011-02-09 16:55:20 · 65 阅读 · 0 评论 -
装饰模式梳理
现在又这么一个场景 一家饭店经营多年后,终于开出了第100家房间,但是现在面临一个问题!就是菜单的更新,如果菜单中一个菜的更改的话,那么就需要更改所有的菜单。 简单的说家店有10本菜谱,那么100家就需要更新10*100,那是一个很恐怖的数据! 那怎么办呢,这个时候就需要设计一套电子菜单了!他们雇佣 了BigSoft公司的精英来开发这套系统! 好,项目就紧张的开始了,前期的需求调研,评估,...原创 2011-02-09 16:24:53 · 98 阅读 · 0 评论 -
单例模式梳理
单例三要素1.私有的构造函数2.静态的对象实例3.静态的获取对象的 方法为了保证多线程安全,有三种解决方法第一种:同步获取实例的方法[code="java"]package com.test.single;public class Single { private static Single instance; pri...2011-02-09 10:59:04 · 68 阅读 · 0 评论 -
我的设计模式--代理模式
1. 什么是代理模式?为其他对象提供一种代理以控制对这个对象的访问2.常见代理远程代理:为一个位于不同地址空间的对象提供一个局域代表对象虚拟代理:根据需要建立一个资源消耗非常大的对象,使该对象只有需要时才被建立保护代理:控制对一个对象的访问,常见的就是用户登录权限控制cache代理:为某一个目标操作的结构提供临时的存储空间,以便多个客户端可以共享这些结果防火墙代理:...原创 2010-05-18 19:45:52 · 71 阅读 · 0 评论 -
qcon杭州的随记
文化Hacking与即将到来的黄金时代 -- McCarthy Technologies创始人 Jim McCarthy 来宣扬黑客价值观的,对美国60,70年代的嬉皮士文化有了新的理解,他们追求的是思想的解放,不在束缚于条条框框,后来他们很多人都走上软件开发的geek道路。获取自动化测试的最大价值 -- Jolt大奖图书作者 Gerard M...原创 2012-12-06 11:14:00 · 204 阅读 · 0 评论