java设计模式
lxl20052051
这个作者很懒,什么都没留下…
展开
-
设计模式-prototype原型模式
有的时候,我们需要一个实例时,并且,当创建一个实例的过程比较复杂或者说是昂贵时,比如,创建实例的构造函数非常的复杂,在执行这个构造函数时会消耗较长的时间,同时呢,这个构造函数中的一些信息又没有什么变化(也就是说创建第一个实例时初始化信息是这样的,创建第二个实例时初始化信息还是还是这样的),那么直接使用 new 来创建这样一个实例就显得太昂贵了,最好的解决方法,并不是使用 new转载 2011-10-26 14:32:11 · 413 阅读 · 0 评论 -
设计模式-FlyWeight(亨元模式)
FlyWeight享元模式: 运用共享技术有效地支持大量细粒度对象。 面向对象程序设计中很多粒度很小的类。这些类具备这样的特点:它的某些属性或行为,与其它的类呈现包容关系。而且这些类的状态的变化,也是直接反映到所有包容它的类类中。就是说,这些类是可以被share的,所以称之为享元。也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对转载 2011-11-09 14:27:22 · 2223 阅读 · 1 评论 -
设计模式-代理模式
代理模式: 为其他对象提供一种代理以控制对这个对象的访问,说白了就是,在一些情况下客户不想或者不能直接引用一个对象,而代理对象可以在客户和目标对象之间起到中介作用,去掉客户不能看到的内容和服务或者增添客户需要的额外服务。为什么使用: 1.授权机制,不同级别的用户对同一对象拥有不同的访问权利,如Jive论坛系统中,就使用Proxy进行授权机制控制,访问论坛有两种转载 2011-10-27 16:20:35 · 581 阅读 · 0 评论 -
设计模式-状态模式
State Pattern(状态模式): 允许一个对象在其内部状态改变时改变它的行为。这个对象看起来似乎修改了它的类。 能够让程序根据不同的外部情况来做出不同的响应,最直接的方法就是在程序中将这些可能发生的外部情况全部考虑到,使用if else语句来进行代码响应选择。但是这种方法对于复杂一点的状态判断,就会显得杂乱无章,容易产生错误;而且增加一个新的状态将会带来大量的修改。转载 2011-10-27 23:14:32 · 513 阅读 · 0 评论 -
设计模式-桥接模式(Bridge Pattern)
桥接模式:将抽象部分和他的实现部分分离,使他们可以独立地变化。结构图:图1 Bridge模式结构图我个人认为,说桥接模式和享元模式,与其说是一种设计模式,还不如说是一种思想,它体现在对系统或对象的分析阶段。当你用桥接模式的思想去分析一个系统或对象,然后用代码实现它之后拿给别人看, 未必有人能说出你用了桥接模式.桥接模式是为了解决这个问题而来的:继承关系是一种紧密的依赖关系,转载 2011-10-27 20:16:04 · 810 阅读 · 0 评论 -
设计模式-简单工厂模式
一、引子 话说十年前,有一个暴发户,他家有三辆汽车——Benz奔驰、Bmw宝马、Audi奥迪,还雇了司机为他开车。不过,暴发户坐车时总是怪怪的:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi说“开奥迪车!”。你一定说:这人有病!直接说开车不就行了?! 而当把这个暴发户的行为放到我们程序设计中来时,会发现这是一个普遍存在的现转载 2011-10-26 10:48:19 · 391 阅读 · 0 评论 -
设计模式-工厂方法模式
一 、工厂方法(Factory Method)模式 工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到工厂子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。二、 工厂方法模式角色与结构 抽象工厂(Creator)角转载 2011-10-26 10:54:07 · 302 阅读 · 0 评论 -
设计模式-抽象工厂模式
抽象工厂模式,在很多场景下都有应用。 它有以下的优点1:封装性,每个产品的实现类不是高层模块要关心的,它所要关心 的是接口和抽象类,他不关心对象是如何创建出来,只有工厂类去关心,只要知道工厂类是谁,我们就能得到一个需要的对象。 2:产品家族的约束为非公开状态。而抽象工厂模式针对的是多个产品等级结构。当每个抽象产品都有多于一个的具体子类的时候,工厂角色怎么知道实例化哪一个子类呢?转载 2011-10-26 12:17:19 · 312 阅读 · 0 评论 -
设计模式-简单工厂、工厂方法、抽象工厂之小结与区别
简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。简单工厂简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。工厂方法工厂方法是针对每一种产品提转载 2011-10-26 12:18:27 · 342 阅读 · 0 评论 -
设计模式-适配器模式
Adapter(适配器)模式: 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。该模式的目标是通过一个代理(这里是Adapter),在原来的类(Adaptee)和客户(Client)之间进行协调,从而达到兼容的目的。其核心是解决一致性的问题。Adapter分为2种: 类适配器和对象转载 2011-10-27 15:28:01 · 316 阅读 · 0 评论 -
设计模式-单例模式
单例模式:保证一个类仅有一个实例,并提供一个访问其实例的一个全局访问点根据单例模式的定义,写单例模式需要注意两点:1.实例由该类自己生成 为了防止客户代码通过 new Singleton()来实例一个对象,需要将 Singleton的默认构造函数定义为private2. 提供一个访问其实例的全局访问点 将访问方法getInstance()定义为 static转载 2011-10-27 15:07:57 · 252 阅读 · 0 评论 -
设计模式-观察者模式
Java的设计模式很多,观察者模式被称为是模式中的皇后,而且Javajdk也对它做了实现,可见该设计模式的重要位置。在图形化设计的软件中,为了实现视图和事件处理的分离,大多都采用了Observer模式,比如Java的Swing,Flex的ActionScript等。在现实的应用系统中也有好多应用,比如像当当网、京东商城一类的电子商务网站,如果你对某件商品比较关注,可以放到收藏架,那么当该商品降价时转载 2011-10-26 21:18:28 · 412 阅读 · 0 评论 -
设计模式-Facade模式
什么是门面设计模式:外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。 门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。就如同医院的接待员一样,门面模式的门面类将客户端与子系统的内部复杂性分隔开,使得客户端只需要与门面对象打交道,而不需要与子系统内转载 2011-10-26 19:49:03 · 330 阅读 · 0 评论 -
设计模式-Decorator模式
Decorator模式定义:动态给一个对象添加一些额外的职责,它是通过创建一个包装对象,也就是装饰来包裹真实的对象。就像在墙上刷油漆,使用Decorator模式相比使用生成子类方式达到功能的扩充更加灵活。为什么使用Decorator:我们通常可以使用继承来实现功能的扩展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性。同时,使用继承实现功能的拓展,我们必转载 2011-10-26 20:31:39 · 710 阅读 · 0 评论