设计模型

2017-12-17  本文已影响0人  哓晓的故事

详细分析参考 设计模式

定义:在软件开发过程中,经常出现的典型场景的典型解决方案,称为设计模式
设计模式一般分为 (创建型|结构型|行为型)

区别

适配器:把一个类的接口变换成客户端所能接受的另一种接口,将接口a适配成接口b
装饰器:在原有类接口的功能上,增加新的功能(可以封装接口,也可以增加接口),原有接口a,新增接口b

Reactor 模式

事件驱动的,有一个或多个并发输入源,有一个Service Handler,有多个Request Handlers

image.png
类似生产者消费者模式,即有一个或多个生产者将事件放入一个Queue中,而一个或多个消费者主动的从这个Queue中Poll事件来处理;而Reactor模式则并没有Queue来做缓冲,每当一个Event输入到Service Handler之后,该Service Handler会主动的根据不同的Event类型将其分发给对应的Request Handler处理IO就绪事件
  1. 依赖于非阻塞IO
  2. 使用多路复用器监管海量IO的就绪事件
  3. 使用boss线程work线程池分离IO事件的监测IO事件的处理

Proactor 模式

Request Handler处理IO完成事件

Adaptor 适配器模式(结构型)

抽象的类名,具体实现的类名继承这个类名,加上自己的实现,这种方式就是适配器模式( 根据不同选择输出不同数据结构 )

052283DE-A43D-4A48-B74E-B607F8F8B208.png
参考
java.io.Reader
- InputStreamReader
- StringReader

Reader统一提供read方法,不同的InputStream或者String实现继承实现自己的方法,并且内部封装特殊请求方法,由适配器根据不同实现对象,调用特殊的实现方法

Decorator 装饰者模式(结构型)

本身是一种类型,保持类型接口不变,又能对该类型的其他子类进行加强的能力,就叫适配器模式( 根据不同选择对原有的数据进行增强 )

AFDA0233-4F67-43F6-A03C-D1240B970589.png
参考
java.io.Reader
- BufferedReader

Strategy 策略模式

定义一个接口,不同的策略实现这个接口
根据不同的选择,选择不同的实现策略(结合模板、简单工厂)

Simple Factory 简单工厂模式(创建型)

传入一个判断条件给工厂,工厂根据条件决定本身输出,输出的是抽象的Product,工厂内部含有全部的具体Product

image.png
缺点:

Factory Method 工厂方法模式(创建型-着重在定义类)

AbstractClient 定义了获取的类(AbstractProduct)获取过程的接口(doSomething),doSomething 操作的具体Product对象生产由子类(AClient/BClient)决定

image.png

优点:

上一篇下一篇

猜你喜欢

热点阅读