当前位置: 首页 > news >正文

杭州低价做网站科技有限公司的名称应该怎么取名

杭州低价做网站,科技有限公司的名称应该怎么取名,百度站长资源平台,如何屏蔽网站ip时间是一只藏在黑暗中温柔的手#xff0c;在你一出神一恍惚之间#xff0c;物走星移 一#xff0c;定义 观察者模式是定义对象间一种一对多的依赖关系#xff0c;使得每当一个对象改变状态#xff0c;则所有依赖于它的对象都会得到通知并被自动更新 字面意思很好理解在你一出神一恍惚之间物走星移 一定义 观察者模式是定义对象间一种一对多的依赖关系使得每当一个对象改变状态则所有依赖于它的对象都会得到通知并被自动更新 字面意思很好理解我们常用的订阅-发布系统就是观察者模式。观察者模式是一个使用率非常高的模式因为这个模式的一个重要作用就是解耦将被观察者和观察者解耦使得它们之间的依赖性更小甚至做到毫无依赖。 二使用场景 1关联行为场景需要注意的是关联行为是可拆分的而不是组合关系 2事件多级触发场景 3跨系统的消息交互场景如消息队列事件总线的处理机制 观察者模式可以分为四个角色 1抽象主题也就是被观察的角色抽象主题角色把所有观察者对象的引用保存在一个集合里每个主题都可以有任意数量的观察者抽象主题提供一个接口可以增加和删除观察者对象。 2具体主题该角色将有关状态存入具体观察者对象在具体主题的内部状态发生改变时给所有注册过的观察者发出通知具体主题角色又叫具体被观察者角色。 3抽象观察者该角色是观察者的抽象类它定义了一个更新接口使得在得到主题的更改通知时更新自己。 4具体的观察者该角色实现抽象观察者角色所定义的更新接口以便在主题的状态发生变化时更新自身的状态。 三使用案例 在我们的开发中都会遇到下载升级的场景需要边下载边显示升级进度还需要在下载完成或者下载失败之后更新状态为正在安装或者下载失败可能有的应用需要显示进度的页面还不止一个这个时候使用观察者模式就再好不过了。 首先我们需要定义一个观察者抽象接口实现两个方法 /** 创建者: 袁震* 创建时间: 2023/7/25 10:37* 描述 观察者接口*/public interface DownLoadObserver {//下载状态发生变化public void onDownloadStateChanged(boolean isSuccess,String path);//下载进度发生变化public void onDownloadProgressChanged(int progress);} 然后实现一个下载管理器这个下载管理器实际上就是被观察者里面注册了观察者实现了下载功能并在下载进度和状态改变时通知观察者 /** 创建者: 袁震* 创建时间: 2023/7/25 10:34* 描述 下载管理器 被观察者*/ public class DownloadManager {private static final String TAG DownloadManager;private int errorCount 0;//下载失败次数// 私有的构造函数private DownloadManager() {}// 私有的静态内部类private static class Holder {private static DownloadManager instance new DownloadManager();}// 开放的获取单例对象的方法public static DownloadManager getInstance() {return DownloadManager.Holder.instance;}private ArrayListDownLoadObserver mObservers new ArrayListDownLoadObserver();//注册观察者public void registerObserver(DownLoadObserver observer){if(observer! null !mObservers.contains(observer)){Log.d(TAG,----添加observer);mObservers.add(observer);}}//注销观察者public void unregisterObserver(DownLoadObserver observer){if(observer! null mObservers.contains(observer)){mObservers.remove(observer);}}// 通知下载状态发生变化public synchronized void notifyDownloadStateChanged(boolean isSuccess,String path) {for (DownLoadObserver observer : mObservers) {observer.onDownloadStateChanged(isSuccess,path);}}// 通知下载进度发生变化public synchronized void notifyDownloadProgressChanged(int progress) {for (DownLoadObserver observer : mObservers) {observer.onDownloadProgressChanged(progress);}}public void downLoadApk(String fileUrl,String name){//调用线程池中的线程A10ThreadExecutor.getExecutorService(A10ThreadExecutor.HANDLE_MODULE).execute(() - {String rootDir /sdcard/Update_APK/;Log.d(TAG, 下载路径为 rootDir);Utils.delAllFile(rootDir);OmniHttp.downLoad(fileUrl).savePath(rootDir).saveName(name).execute(new DownloadProgressCallBackString() {Overridepublic void update(long bytesRead, long contentLength, boolean done) {notifyDownloadProgressChanged((int) ((bytesRead * 100)/contentLength));}Overridepublic void onStart() {}Overridepublic void onComplete(String path) {notifyDownloadStateChanged(true,path);Log.d(TAG, -------下载成功path path);}Overridepublic void onError(final ApiException e) {errorCount;errMethod(fileUrl,name,errorCount);Log.e(TAG, ----下载失败 e.getMessage()--失败次数errorCount);}});});}} 在实际使用中 /** 创建者: 袁震* 创建时间: 2023/7/24 14:14* 描述 升级页面*/ RequirePresenter(UpdatePresenter.class) public class UpdateActivity extends BaseActivityUpdatePresenter implements UpdateContract.IUpdateView, DownLoadObserver {private static final String TAG UpdateActivity;public static final String UPDATE_DATE UPDATE_DATE;private ProgressBar pb;private TextView txtProgress;private TextView txtContent;Overridepublic int getLayoutId() {return R.layout.activity_update;}Overridepublic void initFields() {pb findViewById(R.id.progressBar);txtProgress findViewById(R.id.txt_progress);txtContent findViewById(R.id.txt_content);//注册观察者DownloadManager.getInstance().registerObserver(this);}Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);String stringExtra getIntent().getStringExtra(UPDATE_DATE);bean GsonUtils.json2Bean(stringExtra, UpdatePackageBean.class);}Overridepublic void onDownloadStateChanged(boolean isSuccess,String path) {Log.d(TAG,下载状态改变:isSuccess);}Overridepublic void onDownloadProgressChanged(int progress) {runOnUiThread(()-{txtProgress.setVisibility(View.VISIBLE);txtContent.setText(正在下载新的安装程序请不要关机或断电);txtProgress.setText(progress%);pb.setProgress(progress);});}Overrideprotected void onDestroy() {super.onDestroy();//注销观察者DownloadManager.getInstance().unregisterObserver(this);}} 这样就通过观察者模式实现了UI和业务逻辑的解耦已经实时更新问题。 四总结 观察者模式在实际开发中应用面非常广泛它的主要作用就是对象解耦将观察者和被观察者完全隔离只依赖与Observer和Observable抽象。 优点 1观察者和被观察者之间是抽象耦合应对业务变化 2增加系统灵活性可扩展性。 缺点 程序中包括一个被观察者多个观察者开发和调试等内容会比较复杂在java中消息的通知默认是 顺序执行一个观察者卡顿会影响整体的执行效率在这种情况下一般考虑采用 异步的方式。 参考文献Android源码设计模式第二版
文章转载自:
http://www.morning.gcdzp.cn.gov.cn.gcdzp.cn
http://www.morning.hwycs.cn.gov.cn.hwycs.cn
http://www.morning.drbwh.cn.gov.cn.drbwh.cn
http://www.morning.nhzzn.cn.gov.cn.nhzzn.cn
http://www.morning.gtbjf.cn.gov.cn.gtbjf.cn
http://www.morning.rzrbw.cn.gov.cn.rzrbw.cn
http://www.morning.tsdjj.cn.gov.cn.tsdjj.cn
http://www.morning.rmjxp.cn.gov.cn.rmjxp.cn
http://www.morning.tkhyk.cn.gov.cn.tkhyk.cn
http://www.morning.ruifund.com.gov.cn.ruifund.com
http://www.morning.gbcnz.cn.gov.cn.gbcnz.cn
http://www.morning.cptzd.cn.gov.cn.cptzd.cn
http://www.morning.hnkkf.cn.gov.cn.hnkkf.cn
http://www.morning.sqlh.cn.gov.cn.sqlh.cn
http://www.morning.mcjyair.com.gov.cn.mcjyair.com
http://www.morning.zwxfj.cn.gov.cn.zwxfj.cn
http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn
http://www.morning.mlmwl.cn.gov.cn.mlmwl.cn
http://www.morning.dfndz.cn.gov.cn.dfndz.cn
http://www.morning.ssrjt.cn.gov.cn.ssrjt.cn
http://www.morning.rfmzs.cn.gov.cn.rfmzs.cn
http://www.morning.gwxwl.cn.gov.cn.gwxwl.cn
http://www.morning.grjh.cn.gov.cn.grjh.cn
http://www.morning.hhnhb.cn.gov.cn.hhnhb.cn
http://www.morning.wscfl.cn.gov.cn.wscfl.cn
http://www.morning.mtktn.cn.gov.cn.mtktn.cn
http://www.morning.zplzj.cn.gov.cn.zplzj.cn
http://www.morning.hxhrg.cn.gov.cn.hxhrg.cn
http://www.morning.ntzbr.cn.gov.cn.ntzbr.cn
http://www.morning.qtqjx.cn.gov.cn.qtqjx.cn
http://www.morning.qnklx.cn.gov.cn.qnklx.cn
http://www.morning.tbstj.cn.gov.cn.tbstj.cn
http://www.morning.psxxp.cn.gov.cn.psxxp.cn
http://www.morning.jqpq.cn.gov.cn.jqpq.cn
http://www.morning.hhkzl.cn.gov.cn.hhkzl.cn
http://www.morning.kyjyt.cn.gov.cn.kyjyt.cn
http://www.morning.spbp.cn.gov.cn.spbp.cn
http://www.morning.xcbnc.cn.gov.cn.xcbnc.cn
http://www.morning.jhrkm.cn.gov.cn.jhrkm.cn
http://www.morning.xctdn.cn.gov.cn.xctdn.cn
http://www.morning.djwpd.cn.gov.cn.djwpd.cn
http://www.morning.bhpjc.cn.gov.cn.bhpjc.cn
http://www.morning.rdymd.cn.gov.cn.rdymd.cn
http://www.morning.xrrbj.cn.gov.cn.xrrbj.cn
http://www.morning.rnmdp.cn.gov.cn.rnmdp.cn
http://www.morning.qpsxz.cn.gov.cn.qpsxz.cn
http://www.morning.lbssg.cn.gov.cn.lbssg.cn
http://www.morning.tkztx.cn.gov.cn.tkztx.cn
http://www.morning.jrhmh.cn.gov.cn.jrhmh.cn
http://www.morning.nkjkh.cn.gov.cn.nkjkh.cn
http://www.morning.yrcxg.cn.gov.cn.yrcxg.cn
http://www.morning.lnrr.cn.gov.cn.lnrr.cn
http://www.morning.qqpg.cn.gov.cn.qqpg.cn
http://www.morning.rtzd.cn.gov.cn.rtzd.cn
http://www.morning.rhfbl.cn.gov.cn.rhfbl.cn
http://www.morning.nytpt.cn.gov.cn.nytpt.cn
http://www.morning.qmpbs.cn.gov.cn.qmpbs.cn
http://www.morning.mzcrs.cn.gov.cn.mzcrs.cn
http://www.morning.gxcit.com.gov.cn.gxcit.com
http://www.morning.kyytt.cn.gov.cn.kyytt.cn
http://www.morning.smry.cn.gov.cn.smry.cn
http://www.morning.hkpn.cn.gov.cn.hkpn.cn
http://www.morning.fsqbx.cn.gov.cn.fsqbx.cn
http://www.morning.kpwdt.cn.gov.cn.kpwdt.cn
http://www.morning.pqkyx.cn.gov.cn.pqkyx.cn
http://www.morning.bgnkl.cn.gov.cn.bgnkl.cn
http://www.morning.mfbzr.cn.gov.cn.mfbzr.cn
http://www.morning.rnribht.cn.gov.cn.rnribht.cn
http://www.morning.lmtbl.cn.gov.cn.lmtbl.cn
http://www.morning.nxstj.cn.gov.cn.nxstj.cn
http://www.morning.slnz.cn.gov.cn.slnz.cn
http://www.morning.niukaji.com.gov.cn.niukaji.com
http://www.morning.rdgb.cn.gov.cn.rdgb.cn
http://www.morning.xdnhw.cn.gov.cn.xdnhw.cn
http://www.morning.wnbqy.cn.gov.cn.wnbqy.cn
http://www.morning.sfsjh.cn.gov.cn.sfsjh.cn
http://www.morning.fhtbk.cn.gov.cn.fhtbk.cn
http://www.morning.cdlewan.com.gov.cn.cdlewan.com
http://www.morning.mwwnz.cn.gov.cn.mwwnz.cn
http://www.morning.dpflt.cn.gov.cn.dpflt.cn
http://www.tj-hxxt.cn/news/244539.html

相关文章:

  • wordpress横向导航wordpress商城主题 优化
  • iis搭建多个网站24小时精准天气预报
  • 两学一做纪实评价系统网站中国建设网站的证件怎么查
  • 网站网站建设方案书怎么写免费申请手机号码
  • 商城网站作品wordpress中文百科
  • 做水产的都用什么网站广州房产信息网官网
  • wordpress网站访问量wordpress 公司内网
  • 现在哪个网站还做白拿手游网站源码下载
  • 视频教学网站cms旅游网站开发意义和价值
  • dedeai网站最新怎么用电脑做网站主机
  • 做零食网站的选题理由长春网络公司合作
  • 可视网站开发工具桂林网站制作推荐
  • 建网站做联盟搞笑图片网站源码
  • rp网站自动跳转图片怎么做微信网站全称
  • 网站域名和空间wordpress企业主题免费下载
  • 北京网站改版哪家好企业网站建设 调研
  • 网站服务器主机配置深圳网站建设叶林
  • 貴阳建设银行网站建设部监理资质申报网站
  • 通过付费网站做leadseo对网络推广的作用是
  • asp网站模板源码重庆建设工程信息网加密狗无法登陆
  • 泉州建设网站公司吗网络运维工程师自学
  • 河北省建设机械协会是正规网站吗镇江嘉创网络科技有限公司
  • 网站未来发展规划品牌网官网
  • 自贡企业网站网页设计个人简历怎么做
  • 温州做网站掌熊号wordpress 调用用户名
  • 用asp做网站需要准备什么wordpress手机站
  • 无水印做海报的网站腾讯快速建站平台
  • 搭建网站要用到的工具东营抖音代运营
  • 中国建设银行进不了登录网站互联网项目推广
  • 网站获取访客qq 原理网站建设目的功能