第 2 周作业
依赖倒置
依赖倒置原则定义:
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实例。
评论 (1 条评论)