
设计模式
awfrun
这个作者很懒,什么都没留下…
展开
-
1.设计模式分类
设计模式可以分成三大类(23种):1.创建型模式 (简单工厂模式)、工厂方法模式、抽象工厂模式、创建者模式、原型模式、单例模式 2.结构型模式 外观模式、适配器模式、代理模式、装饰模式、桥模式、组合模式、享元模式、 3.行为型模式 模板方法模式、观察者模式、状态模式、策略模式、职责链模式、命令模式、访问者模式、调停模式、备忘录模式、迭代模式、解释器...原创 2010-06-02 17:01:38 · 127 阅读 · 0 评论 -
9.适配器模式(Adapter)
1.你可能会经常遇到下面这种情况,厂家提供的接口和你写的接口合不上,怎么办??这时候你不想改变自己的接口来适应厂家的接口,同时你又不能改变厂家的接口,那么这个时候你就应该考虑使用适配器模式了。厂家调用他们的接口,而实际上我们给的却是看似像厂家的接口的接口。 2.适配器模式( Adapter Pattern)把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不...原创 2010-06-06 01:25:48 · 104 阅读 · 0 评论 -
8.外观模式(Facade)
1.外观模式又叫做门面模式,主要是为子系统中的一组接口提供一个一致的界面, Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 2.【GOF】的书中指出:在门面模式中,通常只需要一个门面类,并且此门面类只有一个实例,换言之它是一个单例类。当然这并不意味着在整个系统里只能有一个门面类,而仅仅是说对每一个子系统只有一个门面类。或者说,如果一个系统有好几个子系统的话,每一...原创 2010-06-04 21:15:44 · 106 阅读 · 0 评论 -
7.单例模式(Singleton)
单例模式就是确保一个类只有一个实体,并且该实例心须自动创建,并向整个系统提供该实例.下面是两个例子,饿汉式单例模式与懒汉式单例模式: public class Singleton1 { private static Singleton1 instance = new Singleton1(); protected Singleton1() { } p...原创 2010-06-04 16:39:15 · 106 阅读 · 0 评论 -
6.原型模式(Prototype) +深度克隆
主要组成部分:抽象原型和具体原型类. 说明: 在Java中如果通过赋值语句来创建一个对象,则新对象和原来的对象同是一个引用用;Java已经帮我们提供了一种解决方法可以方使的克隆类,这就是原型模式. UML原理: 例子: package com.prototype;/** * * @Title: KeyProt...2010-06-03 22:57:05 · 169 阅读 · 0 评论 -
5.创建者模式(Builder)
创建者模式主要由5部分组成:抽象产品类、实现抽象产品类的具体类、抽象创建者类、实现抽象创建者类的具体类、组装类 说明:比工厂抽象工厂增加一个用来组装产品的类,客户端就不用知道对象的构建细节. UML原理图: 例子: package com.buider;public class Client { public static void ma...2010-06-03 18:28:23 · 190 阅读 · 0 评论 -
4.抽象工厂模式(Abstract Factory)
介绍:抽象工厂模式是针对多个产品结构,它主要用于帮助用户一次创建多个不同的对象. 主要组成部分:抽象工厂类、实现抽象工厂类的具体类、抽象类和实现抽象类的具体类. 原理:UML示例----> 例子: package com.abstractfactory;public class AfricaBird extends Bir...2010-06-02 21:30:32 · 106 阅读 · 0 评论 -
3.工厂方法模式(Factory Method)
介绍:工厂方法模式主要组成部分:抽象工厂类,实现抽象工厂类的具体工厂类、抽象类和实现抽象类的具体类. 说明:每一个产品都有要由一个具体的工厂来创建,把简单工厂拆分成一个个小工厂,每个小工厂只负责单独对象的创建,职责变小了,这样第个具体工厂就可以很好的控制各个对象的初始化了. 例: package com.factorymethod;public interface ...2010-06-02 17:56:40 · 129 阅读 · 0 评论 -
2.简单工厂模式(Simple Factory)
介绍:简单工厂模式主要由3部分组成:工厂类、抽象类和实现抽象类的具体类 优点:客户端不再负责对象的创建,把这个责任丢给了具体的工厂类,客户端只负责对对象的调用,从而明确了各个类的职责. 缺点:使用了静态方法来创建对象,导致静态方法无法被继承. 例子: package com.samplefactory;public interface Animal {...2010-06-02 17:23:15 · 116 阅读 · 0 评论 -
10.代理模式(Proxy)
1.代理模式就是给一个对象提供一个代理对象,由这个代理对象控制对原对象的引用,便代理类在客户端和原对象之间起到一个中介的作用. 2.代理对象主要由3部分组成:抽象目标类、具全的目标类和代理类. 3.代理模式可分为静态代理与动态代理 静态代理例子: package com.proxy;public interface Test { public vo...原创 2010-06-06 16:43:42 · 120 阅读 · 0 评论