欢迎拍砖:

最近做了一个项目,要求java和android平台之间的代码尽量独立。把与平台有关的部分分离出来。

其中canvas和bitmap之间就绑定得很死。如何解耦。桥模式就用上了。

ICanvas 引用一个 IBitmap

ICanvas有一个Draw方法。 IBitmap提供getWidth 和getHeight接口 供调用。还有IPaint也要抽象出来,放进去。

这样就形成了一个上层的桥。

ICanvas -------->IBitmap ICanvas ------>IPaint

下层是

AndroidCanvas ------>AndroidBitmap ---------------->AndroidPaint

这就达到了抽象ICanvas和实现 IBtimap和IPaint分离的目的。

桥模式就是一个万能的解耦密码。如果一个东西和另外一个东西耦合性特别紧,那么怎么办呢。最近在做一个游戏地图

Map -------------------------》Layer

这样的关系

经过修改后,是这样的关系

IMap --------------------》ILayer

下层是

Map ---------------------》Layer

这就是桥模式啊。

Map与他的实现 Layer相分离,都可以独立的变换,互不影响。

以前以为桥模式没什么用,威力现在看来威力不小。

开发最前沿:项目案例实战之桥模式相关推荐

  1. 《Android传感器开发与智能设备案例实战》——第2章,第2.4节安装ADT

    本节书摘来自异步社区<Android传感器开发与智能设备案例实战>一书中的第2章,第2.4节安装ADT,作者 朱元波,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  2. 《Android传感器开发与智能设备案例实战》——导读

    本节书摘来自异步社区<Android传感器开发与智能设备案例实战>一书中的目录,作者 朱元波,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 前 言 第1章 ...

  3. 《Android传感器开发与智能设备案例实战》——第1章,第1.2节Android的巨大优势...

    本节书摘来自异步社区<Android传感器开发与智能设备案例实战>一书中的第1章,第1.2节Android的巨大优势,作者 朱元波,更多章节内容可以访问云栖社区"异步社区&quo ...

  4. 于.net开发平台项目案例集锦

    订阅 | 上一篇 | 下一篇 五味笔记 于.net开发平台项目案例集锦  作者:henq 日期:2007-09-14 字体大小: 小 中 大 基于.net开发平台项目案例集锦 经过微软.net Fra ...

  5. kfaka storm写入mysql_基于Storm+Kafka+Zookeeper锁+Memcached+mysql架构全方位系统Storm项目案例实战...

    基于Storm+Kafka+Zookeeper锁+Memcached+mysql架构全方位系统Storm项目案例实战 适应人群 有一定Storm基础.Kafka基础.Memcached基础.Zooke ...

  6. python项目案例开发pdf-Python项目案例开发从入门到实战——爬虫、游戏

    资料简介: 本书以Python 3.5为编程环境,从基本的程序设计思想入手,逐步展开Python语言教学,是一本面向广大编程学习者的程序设计类图书.本书以案例带动知识点的讲解,将Python知识点分解 ...

  7. android传感器开发与智能设备案例实战_【我的物联网成长记2】设备如何进行选型?...

    [小宅按] 在设备集成开发过程中,主要涉及三类用户: 模组厂商:提供Wifi.NB-IoT.2/3/4G等通信模组的厂商.设备厂商可以利用模组提供的能力接入到华为IoT平台. 设备厂商:开发并销售最终 ...

  8. 52套JavaEE项目案例实战大全视频课程

    目录: 第01项目:OA办公自动化项目(四套) 第02项目:CRM客户关系管理项目(两套) 第03项目:宅急送项目 第04项目:杰信商贸SSH版 第05项目:电力项目(两套) 第06项目:校内网项目 ...

  9. H5移动端项目案例、web手机微商城实战开发

    自微信生态圈一步步强大后,关于移动端购物的趋势,逐渐成为大众关心的内容,目前市场上关于移动商城的制定就有大量版本,比如.微商城.移动商城.移动webAPP.微信商城各等各种定义层出不穷,这就对于移动端 ...

最新文章

  1. 伪静态技术(SEO) 摘自:http://bbs.admin5.com/thread-8522290-1-1.html
  2. 30 多年的软件经验,总结出 10 个编写出更好代码的技巧
  3. 视频目标跟踪算法综述
  4. FFmpeg获取DirectShow设备数据(摄像头,录屏)
  5. VUE自学日志03-模板语法
  6. mybatis mysql5.7_【mysql】mysql5.7支持的json字段查询【mybatis】
  7. oracle 删除已备份归档,通过RMAN联机全库备份,包括控制文件,归档日志文件,备份成功后,删除已备份的归档日志。...
  8. jquery focus() 手机端无效
  9. 《转载》python爬虫实践之模拟登录
  10. 树链剖分+线段树 CF 593D Happy Tree Party(快乐树聚会)
  11. 一款APP其实就是各种SDK的集合体
  12. android 丢包率测试工具,android的ping的实现丢包率的获取
  13. js基础-(二)-类和面向对象
  14. 企业如何做好服务器防护45.113.201.1
  15. win11家庭中文版 安装docker 步骤
  16. webstorm 移动到末尾并且换行快捷键
  17. 广播电视相关信息系统安全 等级保护测评要求
  18. 如何将国外的ftp气象大数据下载回来(by quqi99)
  19. matlab的lambda,lambda算法matlab
  20. 题目:606.根据二叉树创建字符串

热门文章

  1. 计算机公共课考试试题,2019-度公共课计算机应用基础考试试题附答案.doc
  2. 2019年黑龙江省计算机等级考试,2019年的下半年黑龙江省计算机等级考试报名工作即将开始...
  3. 6.QML动画——状态与过渡
  4. 数据查询分页 获取总数时间太长_干货:SQL Server 查询语句
  5. MySQL返回多行错误怎么处理_结果包含多个行错误mysql
  6. cytoscape使用方法_信号通路分析工具教程——Cytoscape及OmniPath插件
  7. SylixOS DSP upgrade命令解析
  8. 数据结构课本学习 --单链表类定义
  9. redis4-发布与订阅
  10. 防火墙 之 iptables 匹配条件讲解