zoukankan      html  css  js  c++  java
  • Java与模式

    1.模式的简史和形而上学

      1.1模式是什么

      1.2软件模式的简史

      1.3模式的起源

      1.4与道家思想的关系

      1.5软件的永恒之道

      1.6模式的要素

      1.7本书讲解模式的格式

    2.统一建模语言UML简介

      2.1建造世界贸易中心

      2.2什么是UML

        统一建模语言

        可视化功能

        说明功能

        建造功能

        建文档功能

      2.3UML包括什么

        结构型图

        行为型图

      2.4类图

        显示类、接口及它们之间的静态结构和关系的图

        描述类的类图

        描述接口的类图

     

        描述对象的类图

        类图中的关系

          一般化关系

          关联关系

     

            常见的基数

        聚合关系

        合成关系

        依赖关系

     

      2.5时序图

        在ATM机上查阅账户信息

        垂直的叫生命线

      2.6状态图

        定义一个具有有限个内部状态的机器

      2.7UML及建模的工具

    第3章  软件的可维护性与可复用性

    3.1软件系统的可维护性

      一个可维护性较好的系统,应当允许维护工作能够以容易、准确、安全和阶级的形式进行

      导致系统腐烂的原因:过于僵硬、过于脆弱、复用率低、粘度过高

      设计目标:可扩展性、灵活性、可插入行

    3.2系统的可复用性

    第4章  "开-闭"原则(OCP)

    4.1什么是开闭原则

      模块可以在不被修改的前提下被扩展

    4.2怎样做到开闭原则

       不修改抽象层而扩展实现层

    4.3与其他设计原则的关系

    4.4策略模式对开闭原则的支持

     4.5在其他设计模式中的体现

      简单工厂模式、工厂方法模式、抽象工厂模式、建造模式、桥梁模式、门面模式、调停者模式、访问者模式、迭代子模式

    4.6一个重构做法的讨论

    第5章  java语言的接口

    5.1什么是接口

      一个接口是一些方法特征的集合

    5.2为什么使用接口

      接口是对可插入性的保证

     5.3java接口常见的用法

      单方法接口、标识接口、常量接口、

    第6章  抽象类

    6.1什么是抽象类

      仅提供一个类型的部分实现

    6.2抽象类的用途

      具体类不是用来继承的、抽象类应当用于尽可能多的共同代码、抽象类应当拥有尽可能少的数据

    6.3基于抽象类的模式和原则

      针对抽象编程、正确使用继承、模板方法模式

    6.4什么时候才应当使用继承复用

      区分has-a与is-a、子类扩展超类的责任、不要从工具类继承

    第7章  里氏代换原则

    7.1美猴王的智慧

    7.2什么是里氏代换原则

      一个软件使用一个基类,一定适用于其子类

    7.3里氏代换原则在设计模式中的体现

      策略模式、合成模式、代理模式

    7.4从代码重构的角度理解

      长方形和正方形、正方形不可以作为长方形的子类、代码的重构、从抽象类继承

    第8章  依赖倒转原则

    8.1为何而倒转

    8.2复用与可维护性的倒转

    8.3依赖倒转原则

      针对接口编程,不用针对实现编程

    8.4怎样做到依赖倒转原则

      工厂方法模式、模板方法模式迭代子模式

    8.5java对抽象类型的支持

      联合使用java接口和java抽象类

    8.6依赖倒转原则的优缺点

      难以实现,技术要求高

    第9章  接口隔离原则

    9.1什么是接口隔离原则

      不同功能接口按角色分割开来

    第10章  合成/聚合复用原则

    10.1合成和聚合的区别

    10.2复用的基本种类

    第11章  迪米特法则

    11.1迪米特法则改造

      调用转发

    11.2迪米特法则与设计模式

    11.3迪米特法则的实现

      将类设置成不变类、降低类的访问权限、谨慎使用Serializable、降低成员的访问权限

    第12章  简单工厂模式

     12.1工厂模式的几种形态

      工厂模式专门负责将大量有共同接口的类实例化

    12.2简单工厂模式的引进

    12.3简单工厂模式的结构

    12.4简单工厂模式与其他模式的关系

      单例模式

        自己负责创建自身的实例

      多例模式、备忘录模式、MVC模式

    12.5简单工厂模式的优点和缺点

    12.6简单工厂模式在java中的应用

    第13章  工厂方法模式

    13.1工厂方法模式的结构

      

     13.2工厂方法模式与其他模式的关系

       COM中的工厂方法模式、EJB中的工厂方法模式、JMS中的工厂方法模式

     第14章  抽象工厂模式

    14.1抽象工厂模式的结构

      14.1.1产品的创建

      14.1.2系统的设计

    14.2使用场景

    14.3在农村系统中的实现

    14.4相关的模式与模式的实现

    第15章  单例模式

    15.1引言

    15.2单例模式的结构

      饿汉式单例类、懒汉式单例类、登记式单例类、

    15.3使用场景

      在一个系统要求一个类只有一个实例时才应当使用单例模式

    15.4单例类的状态

      有状态的单例类、没有状态的单例类、多个jvm系统的分散式系统(EJB、RMI、JINI)避免使用

    15.5示例:属性管理器

    15.6java中的单例模式

      Runtime、Introspector、Toolkit

    15.7不完全的单例类

      有公开构造子的单例模式称为不完全单例类

    15.8相关模式

    第16章  单例模式与MX记录

    16.1问题与解决方案

    16.2目录服务与MX记录

    16.3JNDI架构介绍

    16.4如何使用JNDI编程

    16.5系统设计

    16.6讨论

    第17章  多例模式与多语言支持

    17.1引言

    17.2多例模式

      多例模式的特点、有上限多例类、无上限多例模式、有状态和无状态的多例类

    17.3多语言项目的设计

      语言代码、地区代码、Locale代码、Resource文件及其命名规范

    第18章  序列生成器与单例及多例模式

    18.1问题

      预定式键值存储办法,一次预定多个键值(键值区间)

    18.2将单例模式应用到系统设计中

      无数据库方案、有数据库方案、键值缓存方案、有缓存的多序列键生成器

    18.3将多例模式应用到系统设计中

    18.4讨论

    第19章  建造模式

    19.1引言

    19.2建造模式的结构

      抽象建造者角色:给出一个抽象接口,以规范产品对象的各个组成成分的建造

      具体建造这角色:创建产品的实例

      导演者角色:调用创造者角色创建产品

      产品角色

    19.3建造模式的活动序列

    19.4建造模式的实现

      空的零件构造方法、省略抽象建造者角色、省略导演者角色、过渡到模板方法模式、合并建造者角色和产品角色

    19.5众神造人的神话故事

    19.6JavaMail的建造模式

    19.7发送邮件的例子

    19.8使用场景

      需要生成的产品有复杂的内部结构、需要生成的产品对象的属性相互依赖

    第20章  原始模型模式

    20.1引言

    20.2建立、对象以及对象的引用

    20.3java对象的复制

    20.4原始模型模式的结构

      简单形式

     

      登记形式

     

    20.5模式的实现:深复制和浅复制

    20.6孙大圣的身外化身法术

    20.7使用场景

      产品类需要动态加载

    20.8原始模型模式的优缺点

    20.9原始模型模式与其他模式的关系

    第21章  javaBean的冷藏和解冻

    21.1什么是冷藏和解冻

    21.2什么可以冷藏

    21.3bean.instantiate方法

    21.4jsp中使用bean.instantiate方法

    21.5与装饰模式的关系

    第22章  适配器模式

    22.1引言

    22.2类的适配器模式的结构

      目标角色:目标接口

      源角色:需要适配的接口

      适配器角色

    22.3类的适配器模式的效果

    22.4对象的适配器模式的结构

    22.5使用场景

      系统需要使用现有的类,而此类的接口不符号系统的需要

      建立一个可以重复使用的类,用于与一些彼此直接没有太大关联的类

    22.6iterator与enumeration

    22.7适配器模式在架构层次上的应用

    22.8理由适配器模式指方为圆

    22.9关于模式实现的讨论

    22.10适配器模式与相关模式

    第23章  缺省适配模式

    23.1鲁智深的故事

    23.2window adapter是缺省适配模式

    23.3模式的结构

    23.4使用场景

      不准备实现一个接口的所有方法时,可以制造一个抽象类,给出所有方法的平庸实现。

    23.5实现

    23.6j2ee中的缺省适配模式

    23.7例子

    第24章  XMLProperties与适配器模式

    24.1引言

    24.2SAX2浏览器

    24.3开始XMLProperties项目

    第25章  合成模式

    25.1对象的树结构

      由上向下的树图,子节点不知道父节点

      由下向上的树图,父节点不知道子节点

      双向的树图

     

    25.2介绍合成模式

    25.3安全式和透明式的合成模式

      抽象构件角色、树叶构件角色、树枝构件角色

     

    25.4安全式的合成模式的结构

    25.5透明式的合成模式的结构

    25.6合成模式的实现

    25.7道士的故事

    25.8绘图的例子

    25.9AWT中的例子

    25.10与其他模式的关系

    第26章  装饰模式

    26.1引言

    26.2装饰模式的结构

      抽象构件角色:给出一个抽象接口,接收附加责任的对象

      具体构件角色:定义要接收附加责任的类

      装饰角色:持有一个构件对象的实例,定义一个与抽象构件接口一致的接口

      具体装饰角色:负责给构件对象“贴上”附加的责任

    26.3使用场景

      扩展类的功能或增加附加责任

    26.4孙大圣的故事

    26.5装饰模式优缺点

    26.6装饰模式实现的讨论

    26.7与其他模式的关系

    26.8示例:GrepRead

    26.9发票系统

    第27章  设计模式在I/O库中的应用

    27.1引言

    27.2I/O库的设计原则

    27.3装饰模式的应用

    27.4半透明的装饰模式

    27.5适配器模式的应用

    27.6从byte到char流的适配

    第28章  代理模式

    28.1引言

    28.2代理的种类

      远程代理、虚拟代理、复制代理、保护代理、Cache代理、防火墙代理、同步化代理、只能引用代理

    28.3代理模式的结构

      抽象主题角色:声明真实主题和代理主题共同的接口

      代理主题角色:真实主题的引用

      真实主题角色:代理角色代表的真实对象

    28.4代理模式的时序

    28.5Java2.0对代理模式的支持

      反射与动态代理

    28.6高老庄悟空降八戒

    28.7代理模式的优缺点

    28.8代理模式的实现

    第29章  智能引用代理

    29.1问题

    29.2系统设计

    29.3系统的时序

    29.4系统的源代码

    28.5与其他模式的关系

    第30章  虚拟代理

    30.1问题

    30.2系统的要求

    30.3系统设计

    30.4系统的时序

    30.5系统的源代码

    30.9与其他模式的关系

    第31章  享元模式

    31.1引用

    31.2单纯享元模式的结构

      抽象享元角色:具体享元类的超类,为这些类规定出需要实现的公共接口

      具体享元角色:实现抽象享元角色锁规定的接口

      享元工厂角色:负责创建和管理享元角色

      客户端角色:维护一个对所有享元对象的引用

    31.3复合享元模式的结构

    31.4模式的实现

    31.5一个咖啡摊的例子

    31.6咖啡屋的例子

    31.7使用场景

      系统有大量对象,对象消耗大量内存,对象状态大部分可以外部化,可以按内蕴状态分组,对象不可分辨

    31.8代码重构看享元模式

    31.9享元模式的优缺点

    31.10相关模式

    第32章  门面模式

    32.1引言

    32.2结构

      门面角色:客户端可以调用这个角色的方法

      子系统角色:同时可以有多个子系统

    32.3实现

    32.4使用场景

    32.5迪米特法则

    32.6例子

    32.7设计

    32.8Session

    第33章  桥梁模式

    33.1引言

    33.2结构

      抽象画角色、修真抽象画角色、实现化角色、具体实现化角色

    33.3Peer架构

    33.4驱动器和JDBC驱动器

    33.5重构

    33.6其他模式

    33.7八戒“转世投胎”的故事

    33.8实现

    33.9使用场景

    第34章  不变模式

    34.1引言

    34.2结构和实现

    34.3应用

      String类,封装类

    34.4优缺点

    34.5与其他模式

    第35章  策略模式

    35.1引言

      环境角色:持有一个Strategy类的引用

      抽象策略模式

      具体策略模式:包装了相关的算法或行为

    35.2实现

    35.3例子

    35.4排序策略系统

    35.5图书折扣的计算

    35.6使用场景

    35.7优缺点

    35.8与其他模式的关系

    35.9设计原则

    35.10这领导锦囊妙计

    35.6例子:复数类

    第36章  模板方法模式

    36.1引言

    36.2结构

    36.3好莱坞原则

    36.4例子

    36.5继承作为复用的工具

    36.6应用

      HttpServerlet、AbstractTableModel

    36.7方法

    36.8代码重构

    36.9重构原则

    36.10西天取经的八十一难

    第37章  Servlet技术中的模式

    37.1Servlet技术介绍

    37.2模板方法模式的使用

    37.3观察者模式的应用

    第38章  观察者模式

    38.1引言

    38.2结构

    38.3实现

    38.4应用

    38.5菩萨的守瓶龟

    38.6DEM事件机制

    38.7与其他模式的关系

    第39章  观察者模式与AWT中的事件处理

    39.1引言

    39.2DEM的结构

    第40章  观察者模式与SAX2浏览器

    40.1引言

    40.2SAX2是怎么工作的

    40.3ContenHandler接口

    40.4实现

    40.5使用

    40.6缺省适配模式与DefaultHandler

    40.7简单工厂模式的应用

    第41章  观察者模式与Swing定时器

    41.1为什么需要定时器

    41.2Utility定时器和Swing定时器的区别

    41.3使用Swing定时器的方法

    41.4观察者模式的应用

    41.5单例模式的应用

    第42章  MVC模式与用户输入数据检查

    42.1什么是MVC模式

    42.2MVC是架构模式

    42.3应用

    42.4代码重构

    42.5用户输入检查与MVC模式

    42.6SQL注射

    第43章  迭代子模式

    43.1引言

    43.2结构

    43.3实现

    43.4优缺点

    43.5例子

    43.6与其他模式的关系

    第44章  Java对迭代子模式的支持

    44.1Java聚集

    44.2Java聚集中的迭代子

    44.3java.util.Iterator接口

    44.4java迭代子接口ListIterator

    44.5Enumeration与Iterator

    44.6其他相关模式

    第45章  责任链模式

    45.1击鼓传花

    45.2结构

    45.3传的与不纯的责任链模式

    45.4AWT事件处理机制

    45.5击鼓传花

    45.6java系统的解

    45.7责任链模式的实现

    45.8对象的树结构

    45.9DHTML中的事件处理

    45.10与其他模式的关系

    第46章  定时器与击鼓传花

    46.1线程

    46.2定时器

    46.3击鼓传花

    第47章  命令模式

    47.1引言

    47.2结构

    47.3玉帝传美猴上天

    47.4AWT的事件处理

    47.5创世纪系统

    47.6AudioPlayer系统

    47.7增加宏命令功能

    47.8实现

    47.9使用场景

    47.10优缺点

    47.11与其他模式的关系

     第48章  Swing中的命令撤销和恢复

    48.1在视窗系统中使用命令模式

    48.2Swing的基本撤销功能

    48.3一休论禅的文字框

    第49章  备忘录模式

    49.1结构

    49.2白箱实现

    49.3双重接口

    49.4黑箱实现

    49.5负责人角色的增强

    49.6多重检查点

    49.7自述历史模式

    49.8假如协议模式

    49.9与其他模式的关系

    49.10应用

    49.11优缺点

    49.12观世音甘泉活树的故事

    第50章  状态模式

    50.1引言

    50.2结构

    50.3曾侯乙编钟的描述

    50.4效果

    50.5应用场景

    50.6实现

    第51章  崂山道士与状态模式

    51.1有状态的墙

    51.2异常逻辑

    51.3从代码重构的角度考察

    第53章  访问者模式

    53.1引言

    53.2结构

    53.3时序图

    53.4使用场景

    53.5实现

    53.6问题与对象

    53.7设计

    53.8与其他模式的关系

     第54章  解释器模式

    54.1引言

    54.2结构

    54.3实现

    54.4有关模式

    第55章  调停者模式

    55.1引言

    55.2结构

    55.3实现

    55.4迪米特法则

    55.5优缺点

    55.6使用场景

    55.7相关模式

    附录:设计模式

      创建模式:对类的实例化过程的抽象化--简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、多例模式、建造模式、原始模型模式

      结构模式:描述如何将类或者对象结合在一起形成更大的结构--适配器模式、缺省适配模式、合成模式、装饰模式、代理模式、享元模式、门面模式、桥梁模式

      行为模式:对不同对象之间划分责任和算法的抽象化--不变模式、策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、解释权模式、调停者模式

  • 相关阅读:
    二分-hdu-4768-Flyer
    UVa 340 Master-Mind Hints (优化查找&复制数组)
    Android中的多媒体显示之图片缩放
    asp.net总结(一)
    JAVA中JNI的简单使用
    HDFS集群balance(2)-- 架构概览
    [置顶] 我的Android进阶之旅------>介绍一款集录制与剪辑为一体的屏幕GIF 动画制作工具 GifCam
    HDFS集群balance(3)-- 架构细节
    项目总结——深入浅出socket网络编程
    HDFS集群balance(4)-- 测试计划
  • 原文地址:https://www.cnblogs.com/plxz/p/9565803.html
Copyright © 2011-2022 走看看