写点什么

第 2 周作业

用户头像
娄江国
关注
发布于: 2020 年 06 月 17 日

依赖倒置

依赖倒置原则定义:

1、上层模块不应该依赖底层模块,它们都应该依赖于抽象。

2、抽象不应该依赖于细节,细节应该依赖于抽象。



因为都是依赖于抽象,因此具体的实现类不知道什么时候会被调用,只有调用方调用它时,它才会被调用,而不会主动给其它类使用,也不知道调用方的存在。



Netty4.x的Channel相关类图及分析



图为Netty4.x中,Channel的接口和相关实现类的类图

1、所有Channel的接口和类,都可以向上追溯到Channel接口。

2、根据不同的Channel类型,定义了Channel的多个子接口,这里列出3个:ServerChannel、UnixChannel、DuplexChannel

3、Channel有一个抽象类AbstractChannel,定义了Channel中的一些对象实例。

4、有些子接口中(如:ServerSocketChannel),相对于父接口,并没有添加新的接口定义,但Override了父接口中的一些方法,修改了返回值的类型(父接口中返回类的子类),缩小了返回值的范围。

5、具体的Channel类(非抽象类),基本上都是继承于一个抽象类,同时实现一个接口。抽象类中定义了对象来保存状态,接口定义了要实现的功能。



Cache类优化

Cache类优化后如图所示。

1、CacheClient类使用Cache,依赖于CacheOperator和CacheFactory。

2、CacheOperator有2个实例(可大于2个):MemoryCache和RedisCache。

3、CacheFactory实现了CacheBuilder接口,用于创建CacheOperator实例。

用户头像

娄江国

关注

还未添加个人签名 2017.11.10 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
uml并没有准确体现接口隔离原则
2020 年 06 月 23 日 21:21
回复
没有更多了
第2周作业