当前位置:编程学习 > JAVA >>

《java与模式》笔记

 

 

1 总体认识{{{1

共享的词汇   让你和其他开发人员之间有共享的词汇,一旦懂这些词汇,和其他开发人员之间沟通这些观念就很容易,也会激起那些不懂的程序员想开始学习设计模式。

提升思考架构的层次到模式层面,而不是停留在琐碎的对象上。

[img][attach]11[/attach][/img]

3种:

创建模式:类和对象的创建

结构模式:类或者对象组成更大的结构

行为模式:在不同的对象之间划分责任和算法

UML类图

性质即 内部变量和set(),get()组成

Junit

2 学习方法{{{1

设计模式 通过23趣解理解概念    java类why how 设计,理解简单实例

3 各个模式{{{1

3.1 创建模式{{{1

    3.1.1 简单工厂{{{2

    3.1.2 工厂方法{{{2

    3.1.3 抽象工厂{{{2

    3.1.4 单例类{{{2

单例类:一个类只有一个实例

java中应用:

    private m_instance

    private 构造函数

    getinstance(){ return m_instance}

会看类图、序列图相当重要 简单明了

类图只能反映模式的静态结构,对于创建模式而言,活动图是相当重要的。

--------------------------------------------------------------------------------

3.1.5建造模式{{{2

3.1.6原始模型{{{2

原始模型

Object

cloneable Serializable

浅复制     深复制

--------------------------------------------------------------------------------

3.2 结构模式{{{1

    3.2.1 适配器模型{{{2

1 extends classtemp  implements inte易做图cetemp

2 implements inte易做图cetemp { Classtemp classtemp; 调用classtemp方法}

=====================================

    3.2.2 合成模式{{{2

    3.2.3 装饰模式{{{2

private 齐天大圣c;

public 七十二般变化(齐天大圣c)

{

    super();

    this.c=c;

}

public void move(){

        c.move();

    }

    ex:reader x=new bufferreader(in);

    为所装饰对象提供增强功能

3.2.4代理模式{{{2

    InvocationHander

    invoke()

    Proxy

    对对象的使用施加控制

3.2.5享元模式{{{2

    字体:字母为享元,位置和风格为外蕴状态

3.2.6门面模式{{{2

    保安系统 包括 开灯、开监视器等

3.2.7桥梁模式{{{2

    抽象化与具体化分开

    飞机    制造者

    类型    具体厂商

3.3 行为模式{{{1

3.3.1不变模式{{{2

    final class

    优缺点:

        1.易维护

        2.安全性

3.3.2策略模式{{{2

 封装不同算法

3.3.3模板模式{{{2

    大方法划分成若干个小方法

    ps:面向对象四大特征:

        抽象化

        继承   类子类可获得父类相关属性

        封装   各种权限去访问类属性、方法 或接口

        多态性 多个类去相同属性,其他各异化 注重点是多个子类

 3.3.4 观察者模式{{{2

"我"和“妹妹”向主题“妈妈”登记了感兴趣的“饭熟了”,“妈妈”在事件发生时,通知观察者“我”和“妹妹”,使其采取相应的行动“吃饭”。

java中Observable, Observer

 3.3.5 迭代子模式{{{2

    Colliection  Iterator

    可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。

3.3.6责任链模式{{{2

击鼓传花

DHTML 中DOM event 传播

    captureEvent()releaseEvent()

 3.3.7 命令模式{{{2

    Callback

        Command play = new PlayCommand(myAudio);

        Command stop = new StopCommand(myAudio);

        Command rewind = new RewindCommand(myAudio);

        keypad = new Keypad(play, stop, rewind);

        keypad.play();

        keypad.stop();

        keypad.rewind();

    keypad与myAudio没有直接打交道

    一个命令一个类

 3.3.8 备忘录模式{{{2

难理解

 3.3.9 状态模式{{{2

有状态对象 如一组编钟

state   setstate()

 3.3.10 访问者模式{{{2

 3.3.11 解释器模式{{{3

文法 解释

 3.3.12 调停者模式{{{2

    相互之间太多关系=====》米字形关系 中间有一调停者

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,