ContextImpl和ContextWrapper都是继承自Context,在ContextWrapper中依赖了ContextImpl对象(mBase)。这里使用了装饰者模式,ContextWrapper是装饰类,对ContextImpl进行包装,通过使用ContextImpl实现功能。
Application、Service、ContextThemeWrapper继承自ContextWrapper,它们也是通过ContextImpl实现功能,同时在ContextWrapper的基础上添加了自己的功能。此外ContextThemeWrapper中包含了主题相关的方法,Activity继承自ContextThemeWrapper。
网友评论