设计模式自用查阅源码Java版本

设计模式自用查阅源码Java版本

2020-06-24 22:39:42发布 浏览数:1491
概述:设计模式自用查阅源码Java版本

文章目录

设计模式自用查阅源码(Java版本)代码介绍软件架构运行环境

设计模式自用查阅源码(Java版本)

代码

GOF23

说明:将源码Fork到自己的gitee中,使用Web IDE查看会极度舒适!

介绍

设计模式

《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为"四人组(Gang of Four)"。

设计模式共有三大类:

创建型模式:对象的创建过程。共5种。

结构型模式:对象和类的组织。共7种。

行为型模式:系统中对象之间的相互交互,研究系统在运行时对象之间的相互通信与协作,进一步明确对象的职责。共11种。

软件架构

  1. CreationPattern:创造型模式

  2. Singleton:单例模式(1) Singleton01:饿汉式 Singleton02:懒汉式 Singleton03:双重检查锁 Singleton04:内部静态类 Singleton05:枚举式 Singleton06:以懒汉式为例,解决反射和反序列化破解单例模式漏洞 SingletonApp01:客户端,测试单例性 SingletonApp02:以懒汉式为例,测试反射和反序列化破解单例模式 SingletonApp03:测试并发效率 Factory:工厂模式 SimpleFactory:简单工厂模式(2) FactoryMethod:工厂方法模式 AbstractFactory:抽象工厂模式(3) CreateObjectApp:测试一般方法创建对象 SimpleFactoryApp:客户端,测试简单工厂模式(生产不同品牌手机案例) FactoryMethodApp:客户端,测试工厂方法模式(生产不同品牌手机案例) AbstractFactoryApp:客户端,测试抽象工厂模式(生产高低端手机零部件案例) Builder:构造者模式(4) MobilePhoneBuilder:构造器 MobilePhoneDirector:装配器 BuilderApp:客户端,测试构造者模式(手机零部件制造和装配案例) Prototype:原型模式(5) Sheep:浅克隆的原型模式 Sheep:深克隆的原型模式 PrototypeApp:客户端,测试浅克隆的原型模式(克隆羊案例) PrototypeApp02:客户端,测试深克隆的原型模式(克隆羊案例) PrototypeApp03:客户端,测试反序列化实现深克隆(克隆羊案例) PrototypeApp04:测试使用原型模式创建对象的效率
  3. StructuralPattern:结构型模式

  4. Adapter:适配器模式(6) Adaptee:被适配类 Target:目标接口 Adapter01:类适配器 AdapterApp01:客户端,测试类适配器(电脑接口转接适配器案例) Adapter02:对象适配器 AdapterApp02:客户端,测试对象适配器(电脑接口转接适配器案例) Proxy:代理模式(7) StaticProxy:静态代理 Singer:抽象角色 RealSinger:真实角色 SingerProxy:代理角色 StaticProxyApp:客户端,测试静态代理(歌手演出案例) DynamicProxy:动态代理(JDK自带) Singer:抽象角色 RealSinger:真实角色 SingerHandler:处理器 DynamicProxyApp:客户端,测试动态代理(歌手演出案例) Bridge:桥接模式(8) Terminal:终端设备类型继承结构 Brand:终端设备品牌继承结构 BridgeApp:客户端,测试桥接模式(终端设备类型和品牌案例) Terminal02:多重继承结构(与桥接模式对比) Composite:组合模式(9) Component:抽象组件、抽象叶子组件和抽象容器组件 Anti_Virus:具体叶子组件和具体容器组件 CompositeApp:客户端,测试组合模式(杀毒软件案例) Decorator:装饰器模式(10) AbstractCar:抽象角色 Car:具体角色 DecoratorCar:装饰角色 FlyCar、SwimCar:具体装饰角色 DecoratorApp:客户端,测试装饰器模式(超级汽车案例) Facade:外观模式(11) RegisterFacade:门面对象 FacadeApp:客户端,测试外观模式(公司注册案例) FlyWeight:享元模式(12) FlyWeight:抽象享元类 ConcreteFlyWeight:具体享元类 UnsharedConcreteFlyWeight:非共享享元类 FlyWeightFactory:享元工厂 FlyWeightApp:客户端,测试享元模式(围棋棋子移动案例)
  5. BehavioralPattern:行为型模式
  6. ChainOfResp:责任链模式(13) LeaveRequest:请求对象 Leader:抽象处理对象 ConcreteLeader:具体处理对象(多个) ChainOfRespApp:客户端,测试责任链模式(请假审批案例) Iterator:迭代器模式(14) AbstractIterator:抽象迭代器 Container:聚合对象和内部迭代器 IteratorApp:客户端,测试迭代器模式(正向遍历迭代器案例) Mediator:中介者模式(15) GeneralManager:中介者 Department:同事(抽象同事和具体同事) MediatorApp:客户端,测试中介者模式(总经理协调各部门案例) Command:命令模式(16) Receiver:接收者 Command:命令类(抽象命令和具体命令) Invoker:调用者 CommandApp:客户端,测试命令模式(单条命令执行案例) Interpreter:解释器模式(17) no code Visiter:访问者模式(18) no code Strategy:策略模式(19) Strategy:策略(抽象策略和具体策略) Context:上下文 NonStrategy:不使用策略模式实现相同功能 StrategyAPP:客户端,测试策略模式(客户报价案例) TemplateMethod:模板方法模式(20) BankTemplateMethod:模板方法类 TemplateMethodApp:客户端,测试模板方法模式(银行办理业务案例) State:状态模式(21) State:状态类(抽象状态和具体状态) Context:上下文 StateApp:客户端,测试状态模式(酒店房间状态管理案例) Observer:观察者模式(22) Observer:观察者类(抽象观察者和具体观察者) Subject:目标类(目标父类和目标子类) ObserverApp:客户端,测试观察者模式(推式广播案例) jdk:基于jdk类库实现观察者模式 ConcreteObserverB:具体观察者 ConcreteSubjectB:目标子类 ObserverBApp:客户端,测试观察者模式(推式广播案例) Memento:备忘录模式(23) Originator:源发器类 Memento:备忘录类 CareTaker:负责人类 MementoApp:客户端,测试备忘录模式(象棋悔棋案例)

运行环境

  1. jdk-1.7 Intellij IDEA 2019.3


请先
登录
后评论
0 条评论
暂时没有评论
最新文章
更多