Android R(11) 为HIDL服务添加观察者模式(Observer Pattern)的支持(十)

1.观察者模式(Observer Pattern)简介

  当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。通俗的举个例子,以前没有电热水器的时候,我们需要将水壶放到炉灶上加热,并且守在旁边或者隔一段时间主动的来查看水壶中的水是否被烧开,如果烧开了就停止加热,反之则继续等待。但是现在我们有了电热水壶,此时我们可以给电热水壶设置一个指定的温度,让其达到这个温度时发出铃声来主动通知我。这里的设定温度(观察者注册listener)以及电热水壶的主动通知(通过注册的listener回调通知观察者)就类似观察者模式的运作。Observer Pattern的关系图大致如下
Observer

2. 源码修改概览

  下面就让我们自定的HIDL service支持电热水壶的主动通知功能,整体源码的修改如下。

flagstaff@flagstaff-pc:~/aosp_r.lns/test/flagstaffTest$ git show HEAD --stat
commit 527add63b05a34f3c5fc21a8f5097965742885cc (HEAD -> master)
Author: flagstaff <flagstaff@fake.com>
Date:   Mon Feb 7 20:59:18 2022 +0800

    1.Supportting observer pattern for CustomHardware HIDL service.
    2.serviceModelClient supports registerWaterTemperatureListener.

    Signed-off-by: flagstaff <flagstaff@fake.com>

 hardware/interfaces/custom_hardware/1.0/Android.bp                                |  1 +
 hardware/interfaces/custom_hardware/1.0/ICustomHardware.hal                       |  4 ++++
 hardware/interfaces/custom_hardware/1.0/IWaterTemperatureListener.hal             |  6 ++++++
 hardware/interfaces/custom_hardware/1.0/default/include/CustomHardware.h          | 20 ++++++++++++++++++--
 hardware/interfaces/custom_hardware/1.0/default/src/CustomHardware.cpp            | 47 ++++++++++++++++++++++++++++++++++++
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值