- 博客(16)
- 资源 (11)
- 收藏
- 关注
原创 设计模式 (十六)状态模式(State)
状态模式(State)就是根据对象的状态不同,将有不同的行为。很简单的方法我们可以做N个if(){}else if(){}......else{}但是这样可想而知工作量会相当的大,这样就引入了状态模式,能实现和前面一样的功能,但是没有判断语句,而且如果添加了新的功能模块或者是流程,只要添加一个状态类就可以了。下面是简单的状态模式的原理图:这里我用了一个QQ登录
2012-04-16 16:44:58 2850 11
原创 设计模式 (十五)观察者模式(Observer)
观察者模式(Observer)就是定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并被自动更新。对于观察者模式的原理图: 通过一个一个抽象的主题Subject保存了多个信息处理列表,可以添加多个观察者,实现即时的通知观察者最新动态然后分别派生子类对象对具体的消息和状态做出处理,下面我们联系到具体的问题:正好我还在读,就拿学校通知公告来举例子吧
2012-04-14 23:45:37 2924
原创 设计模式 (十四)模板方法模式(Template)
模板方法模式(Template)是行为模式之一,其就是简单定义一个算法执行骨架,而将其具体的算法延迟到子类中实现,从而使出现过多的类的时候不用再改变算法和结构直接添加一个实现子类就可以了。一般在具体统一的操作步骤和业务功能,但是具有不同的细节处理,这样用模板方法模式减少了代码的复用下面简单的看看模板方法模式的原理图:实例对象对于抽象类的继承,展开了具体的细节功能的处理,下面把模式应
2012-04-14 00:00:22 2774
原创 设计模式 (十三)享元模式(Flyweight)
享元模式(Flyweight)就是把部分和整体的关系用树形结构来表示,从而使客户端能够把一个个的部分对象和有他们组合起来的整体对象采用同样的方式看待,他也是一个继承的替代,其实具体的说,享元模式就是用时间交换了空间。用程序的运行速度来读取是否重复的对象内容,然后不创建一个重复的对象来节省空间,于此同时就大大提高了程序的运行效率。下面就简单的原理图:然后通过一个字符的库创建简单的理解
2012-04-13 10:47:33 2567 7
原创 设计模式 (十二)组合模式(Composite)
树形结构在日常生活中是非常常见的,比如组织机构的这几,软件菜单的设计等,这些属性结构,他们的叶子节点和父节点在行为上基本是一致的。只是在父节点上可能又包含了子节点。这类应用在软件设计中,如果更好的来实现呢?这样我们就引出了下面对于组合模式的简单介绍:组合模式(Composite)是整体与部分的关系,一个典型的应用就是树型结构,组合模式可以抽象出三种角色,分别为抽象构建角色(Component)
2012-04-11 11:26:47 2935
原创 设计模式 (十一)桥模式(birdge)
简单的桥模式(birdge)将抽象与其实现解耦合,使他们的可以独立地变化,中文里把派生类叫做抽象的实现,而桥模式中所讲的实现恰恰不是这个意思,桥模式中的抽象类及派生类,实现指的是这些抽象类及派生类实现自己的方式。简单的桥模式(birdge)的原理图下面是关于这个模式的简单的一个例子程序,有一个鼠标抽象类,其这个鼠标分别属于联想和宏基生产的,这样用桥模式通过组合和继承,简
2012-04-11 10:09:43 3213
原创 设计模式 (十)装饰模式(Decorator)
装饰模式(Decorator)就是使用被装饰的一个子类的实例,在客户端将这个子类的实例委托给装饰类。装饰模式是结成关系的一个替代方案。简单的装饰模式是原理图入下:装饰模式以对客服端透明的方式增添了对象的功能,其在与动态的给对象添加了责任,当然这里的继承便是静态的。其中重要的地方时装饰对象和真是对象有相同的接口,这样客户端就可以和真是对象一样的交互方式和装饰对象交互,然后装饰对象
2012-04-09 13:44:48 1408
原创 设计模式 (九)代理模式(Proxy)
代理模式(Proxy)就是为其他对象提供一种代理以控制这个对象的访问,一个对象不想直接访问这个对象具体Subject类:定义了RealSubject和Proxy的公用接口,这样就可以任何使用RealSubject的地方都可以用ProxyRealSubject类:定义了Proxy所代表的真实实体。Proxy类:保存一个引用使得代理可以访问实体,并提供一个与Subject的接口相同的接口,
2012-04-08 23:48:34 1661
原创 设计模式 (八)适配器模式(Adapter)
适配器模式(Adapter)就是由源到目标的一个适配,通常我们定义的接口或者类里面提供了好多方法,但是定义好的接口里面的方法有时候用起来不是很符合我们的需要,这时候如果去修改源码也不是一个好方法,通常设计的时候也很少修改源码的。这样就提供了适配器这个类,用一个类来达到源和目标的匹配就可以了,当然可以实现我们想要的各种匹配。在Spring,IO里面都有这方面的设计,最简单的BeanUtils里面
2012-04-08 00:36:35 4496 9
原创 设计模式 (七)外观模式(Facade)
外观模式(Facade)为了小小的纠正一下个人的口语,于是有道了一下:[fə'sɑ:d]对于外观模式就是为了子系统对外提供的一组接口提供一个统一的界面,似的其他系统对该系统访问都通过一个同一段的界面来完成。外观模式主要由三部分组成,一个中间类,就是Facade类,负责联系子系统提供对外的接口,一个是多个子系统,一个是客户端负责通过Facade类对子系统的功能进行操作这里通过简单的工厂生
2012-04-06 23:31:03 1690
原创 设计模式 (六)单例模式(Singleton)
单例模式就是确保一个类只有一个实例,并且该实例必须自动创建,并向整个系统提供该实例。这样保证了对外的对象的属性等均为一个实例,就像是银行取款单例模式原理图:单例模式分为饿汉式单例模式和懒汉式单例模式。饿汉式单例模式代码package com.designpattern.singleton;public class HungrySingleton { private
2012-04-05 23:29:42 1646
原创 设计模式 (五)原型模式(Prototype)
原型模式就是通过一个原型对象来表明要创建的对象类型,然后用复制这个原型对象的方法来创建更多同类型的对象。自己对原型模式简单理解的原理图如下:具体属性没有添加:原型模式里面关键点就在一个Cloneable接口和clone方法的重写下面就通过一个配钥匙的例子简单的写了一个程序,起初一个一个抽象类,这样可以重写clone方法,如果是接口的话就得到子类里面把重写的方法具体声明,这样
2012-04-04 19:18:37 1374 4
原创 设计模式 (四)创建者模式(Builder)
创建者模式主要是为了所谓的高聚合,解耦合,遇到多种配件于一身的情况的时候,放在实体类里面不合适,放在工厂类也不合适,所以就添加了一个创建者类,专门对相应的零件进行组装,如同汽车了N中配件,同时要是各种配件互相联系的话也在这个Builder里面一并做了。明天准备去爬山,这个原理图就再补上吧:今天把uml补上了,不过对于uml初学的我就乱乱的先随便画一个吧,等以后慢慢入门了在斟酌里面的错误和细
2012-04-02 23:14:35 1456 4
原创 thinking in java 学习笔记(三)之重载
简单通过书中的例子,重新温习了一下重载:package com.halberd.extend;class Tree { int height; Tree() { System.out.println("Planting a seedling"); height = 0; } Tree(int initialHeight) { height = initialHe
2012-04-01 23:51:58 1299
原创 Apache Tomcat(三)Tomcat的安装与配置
其实tomcat的安装和配置就那么几步,接触过web的人都不是一个问题,这里是按照本书目录的结构来简单的做了一下笔记,其实关键还是想今天偷一下懒,早点睡觉而已,其实关键是清明放假了,但是不能打乱进度,所以就找点简单的东西。这一个章节,主要讲解了Tomcat的安装,环境变量的配置,和linux下面的几种格式的安装,其他的部分就是简单的介绍了Apache的子项目,ant的简单的配置和使用而已,加上
2012-04-01 22:11:02 942
原创 设计模式 (三)抽象工厂模式(AbstractFactory)
抽象工厂模式(AbstractFactory)原理图初学uml不会排版,就这样凑合吧,展现大概就行了抽象,果然挺让我理解的抽象的,其实一个挺简单的模式,但是这样乱乱的画出来其实就是通过工厂创建出对象而已,只不过是对于工厂的分类方式和对于产品的分类方式不一样了而已,上面是最合理的方式(起码这个书上我是这么理解的),其实我自己觉得可以有别的方法比如我不是按照产品的种类分类,按照产品
2012-04-01 17:31:38 1504 1
VE-Update-1.4.0.zip
2012-05-05
com.designpattern.state_observer.rar
2012-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人