设计模式
文章平均质量分 73
wodeyuer125
这个作者很懒,什么都没留下…
展开
-
设计模式自学-观察者模式
观察者模式: 1、java.util原创 2014-08-11 14:19:23 · 567 阅读 · 0 评论 -
设计模式学习之装饰器模式
装饰器(Decorator)模式跟适配器(Adapter)模式一样,属于构建型设计模式。在学习适配器模式的时候说过,适配器模式的重点在复用能力,装饰器模式的重点在扩展能力。换言之,装饰器模式是先复用后扩展,这也导致了很多人跟适配器模式混淆。装饰器模式意在实现了相同接口的类,在不继承的情况下,实现组件的功能扩展。多内聚,少继承。例子是从网上摘录下来的: [java] view pl原创 2015-04-01 12:06:32 · 523 阅读 · 0 评论 -
设计模式学习之组合模式
组合(Composite)模式,又可以叫部分-整体模式。也是属于结构型设计模式之一,这个设计模式相对adapter和decorator来说比较容易理解些。composite模式适合用于构造树型的数据结构,例如,用于实现操作系统的目录,目录中可以包含节点(子目录)和叶子节点(文件)。从网上摘了一个例子,如下: [java] view plaincopy p转载 2015-04-01 14:38:52 · 375 阅读 · 0 评论 -
设计模式学习之适配器模式
学习完了创建型设计模式,接下来准备学习结构型设计模式。我的个人理解是,创建型设计模式是如何优雅的生成新的对象,而结构型设计模式是如何优雅的组织对象。针对不同的应用场景,组织对象的方式也可能不尽相同。换言之,先得有场景,才需要选择设计模式。这是理解结构型设计模式最重要的地方。曾经有人问我,这么多设计模式根本记不住,而且有些模式感觉差不多,容易混淆。诚然,死记硬背各种模式,很难灵活运用,千万不能拘泥于原创 2015-03-30 12:21:56 · 557 阅读 · 0 评论 -
设计模式学习之享元模式
我觉得享元模式中最重要的是划分变量和不变量。例如手机,手机的操作系统分ios和安卓,这是不变量(情况不多,维度建模中叫缓慢变化维),即内部变量;而手机里安装的app,就是变量,也即外部变量。享元模式中,被存储起来的只有不变量部分,常变量再经过排列组合,情况太多了,存储起来意义不大,还不如让jvm回收掉。原创 2015-04-02 15:32:21 · 399 阅读 · 0 评论 -
设计模式学习之桥接模式
桥接模式,将抽象与行为分开,这是有区别于抽象工厂(从各个产品簇new对象)的,转载 2015-04-02 14:17:53 · 451 阅读 · 0 评论 -
设计模式学习之单例模式
单例(Singleton)模式,这是开发中使用最多的设计模式之一。需要注意的是,此处所说的单例,有区别于Spring中的单例。虽然同是为了节省空间和时间,但是Spring中的单例是Spring自身的一个优化设计,保证在相同的上下文中是单例,而在不同的上下文中就是多例了。所以,Spring中的单例并不要求类的构造方法是私有的。而下面要讲的单例模式,能保证在应用中是一个实例。这里不打算介绍懒汉和饥饿,原创 2015-03-26 19:11:19 · 535 阅读 · 0 评论 -
从java.io包看装饰模式
可从IO的类层次,IO框架的设计模式来论述。 总体来说,IO可以分为字节流和字符流,不同在于字符流由字节流包装而来,在IO读入之后经过JVM处理,把字节流转换成字符流。而字符流的字符采用哪种字符编码实现由JVM默认编码决定。 而每个流都分输入和输出,所以,总体来说,IO有四个顶层类: InputStream OutputStream Reader Writer转载 2015-03-30 17:36:37 · 434 阅读 · 0 评论 -
设计模式学习之构建者模式
构建者(builder)模式,也属于创建型设计模式。将复杂对象的构建算法与表示分离,使得同样的构建过程可以创建不同的表示,是抽象工厂模式与模板模式的结合。我们还以汽车为例,设想一下这样的场景,老板要根据很多不同的产品族(车轮、方向盘、空调等部件)组装成各种不同类型的汽车。我们将所有的部件都分别抽象一个接口,如果使用抽象工厂模式,排列组合,将会是一个浩大的工程。构建者模式将架构与表示分离,将非常适合原创 2015-03-27 11:49:22 · 715 阅读 · 0 评论 -
java常用的23种设计模式
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式转载 2014-11-19 17:43:02 · 1158 阅读 · 1 评论 -
设计模式学习之原型模式
如果说,简单工厂模式、工厂模式、抽象工厂模式、构建者模式都一定程度上解决了耦合的问题,那么接下来要学习的原型(Prototype)模式则一定程度上解决了初始化速率的问题。下面是原型模式的例子,需要特别说明的是,java中除了8中基本类型,都是引用类型,但是String只能说是一种特殊的引用类型,因为在内存分配的时候,String的值也跟8种基本类型一样,分配在常量池中。以下是转发的例子: 原转载 2015-03-26 14:16:00 · 510 阅读 · 0 评论 -
设计模式学习之简单工厂、工厂方法、抽象工厂
一直对简单工厂、工厂方法、抽象工厂三种设计模式的认识比较模糊,特别是工厂方法和抽象工厂方法模式,容易混淆。今天特别针对这三种设计模式学习了一下,整理下自己的理解。 简单工厂模式(Simple Factory),又称静态工厂方法模式,属于工厂方法模式中的特例,所以GOF在《设计模式》一书中把它归为工厂方法模式。下面是从其他博客摘录的例子: 产品原创 2015-03-25 15:56:39 · 1042 阅读 · 0 评论 -
java事件监听
java事件机制包括三个部分:事件、事件监听器、事件源。 1、事件。一般继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息。 com.javaedu.event.CusEvent类 Java代码 package com.javaedu.event; import java.util.EventObj转载 2014-10-20 11:29:12 · 1348 阅读 · 0 评论 -
设计模式学习之外观模式
外观(Facade)模式,同属于结构型设计模式,是一个看似简单,要说清楚却又不容易的模式。之所以这么说,是因为这个模式并没有一个定式。我试图很好的理解外观模式,看过不少网友介绍外观模式,无非都是“外观模式定义一个更高层的接口,使子系统更容易使用”、“解耦”之类的,这确实是外观模式的作用之一。但我觉得并不能明确、全面的说明外观模式。下面是我对外观模式的理解,就从网上常用的封装数据库jdbc开始:原创 2015-04-01 16:50:19 · 562 阅读 · 0 评论