十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
实现了访问者和被访问者分离,灵活且扩展性强;但违背了迪米特和依赖倒转原则,被访问元素若修改影响较大。
创新互联为企业级客户提高一站式互联网+设计服务,主要包括成都网站制作、网站设计、外贸网站建设、重庆APP开发、微信小程序、宣传片制作、LOGO设计等,帮助客户快速提升营销能力和企业形象,创新互联各部门都有经验丰富的经验,可以确保每一个作品的质量和创作周期,同时每年都有很多新员工加入,为我们带来大量新的创意。
双分派技术(双动态绑定)
访问者的角色由它的实现对象确定
被访问的角色也由它的具体对象决定
源码:注解的解释器
员工给不同管理者查看的报表
病人、抓药人、医生、定价者面对药店不同药物所做的想法或操作
加入中介类来改变对象关系,使网状结构变为星型结构,多对多变为一对多。应用于对象关系较为复杂的情况。
源码:binder driver和service manager;keyGuardViewMediator;
主板和电源、cpu等关系
总经理和诸多部门
Activity中view、model、逻辑交互
和中介者类似,加入中间类形成统一编程接口,区别在于不是为了改变对象关系,而是把多个功能封装为api以供调用。
源码:Context
插件化动态加载(ActivityProxy)
sdk封装
框架封装(OKHttp,Piccaso)
通过多层继承和实现相同方法组合模型,用于控制树形结构。但通常需要进行类型判断,增加代码复杂度。
安全的组合模式:由子组合完成抽象方法(ViewGroup),外界使用需要判断view或viewGroup,使用不方便。
透明组合模式:根节点、枝干节点、叶节点都有相同的抽象方法,对外界透明,使用方便不安全。
源码:ViewGroup View
文件夹和文件
通过适配接口进行兼容处理,通常后期使用,避免过度适配;灵活使用可以增加扩展和复用性(系统adapter)。
对象适配器:适配目标为接口,适配器中传入被适配对象,通过适配目标接口进行转换处理。
类适配器:适配目标为抽象父类,通过扩展子类实现相同方法实现方法兼容。
源码:adapter
电源转换
利用装饰者类重复传入装饰对象,可以随意增减装饰方法。替代继承方式解决类膨胀问题,扩展性极强。
源码:ContextWrapper
餐馆混搭
奶茶混搭
抽象状态对象使得行为在不同状态下都能产生变化。
源码:wifi管理
登录状态
家电控制状态
下载状态管理
定义算法框架,使子类不改变结构的情况下改变行为。
源码:AsynTask、Activity生命周期
adapter-holder
draw流程
Activity Init三板斧
在该对象之外保存该对象的内部状态
源码:saveInstanceState,事务回滚
游戏保存读取
记事本状态恢复
使用共享对象(对象池)实现对象的复用,需要分离内部状态和外部状态,可以大大节约内存。
源码:handleMessage消息池复用;线程池
建立tcp消息池
车票系统车次信息池
封装命令对象传递请求给调用者,分离请求者和接收者,会增加大量的类,但是职责分明,高内聚,非常灵活容易扩展,可作为回调的替代。
源码:Packagemanager的安装、移动、测量命令(内部类HandlerParams子类实现);
画笔应用
记事本应用
使用不同解释器对特定语言进行解析,对简单语法适应较好,易于扩展,无法对应复杂文法(如有顺序的四则运算)。
源码:清单文件解析parseActivity
简单计算
发送请求给一个对象链条,该链条每个对象和它的下一对象绑定,实现发起者与最终接手者的解耦
源码:事件分发
广播的有序机制改进为责任链广播
公司各种权限的逐级申请
继承制度
装饰模式用作功能扩展,可以给相同对象不断增加新的特征;代理模式则偏向行为控制,在方法执行前后做处理。
策略模式封装可变更的算法解耦;状态模式通过改变状态控制行为。