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

手机网站大全免费下载python 做网站怎样

手机网站大全免费下载,python 做网站怎样,空间做网站,扫描网站特征dede一. 前言 学习RxJava#xff0c;少不了介绍它的设计模式。但我看大部分文章#xff0c;都是先将其用法介绍一通#xff0c;然后再结合其用法#xff0c;讲解其设计模式。这样当然有很多好处#xff0c;但我个人觉得#xff0c;这种介绍方式#xff0c;对于没有接触过Rx…一. 前言 学习RxJava少不了介绍它的设计模式。但我看大部分文章都是先将其用法介绍一通然后再结合其用法讲解其设计模式。这样当然有很多好处但我个人觉得这种介绍方式对于没有接触过RxJava的朋友来说是不太友好的。 而我更倾向于先把对设计模式的认知拉齐然后在讲到用法的时候大家就会自然而然地理解了它怎么用到的设计模式从而也就更容易理解源码了一切都是水到渠成。 所以在本篇文章中大部分内容依然不会涉及RxJava但其实处处都有RxJava的影子。你需要做的就是完全理解本篇文章的内容没有理解到的地方请留言我都会一个一个认真看的。 不啰嗦了让我们开始正题吧 二. 观察者模式 1. 什么是观察者模式 一个比较书面化的定义是在对象之间定义一个一对多的依赖当一个对象状态改变的时候所有依赖的对象都会自动收到通知。 通俗一点理解假如说有两种对象一个是观察者一个是被观察者当一个被观察者对象发生变化的时候可以通知到所有的观察者对象。所有的观察者对象在接收到这个通知的时候可以做一些自己的处理。 2. Android中有没有例子 在Android中观察者模式其实很常见比如点击事件监听当view被点击的时候会通知到它的观察者也就是调用到你实现的onClick方法。再比如说EventBus比如LiveData其实都有运用到观察者模式。 3. 写个代码 本着KISS原则Keep It Simple, Stupid观察者模式比较简单所以在这里就不写代码了。 但值得一提的是RxJava中运用到的观察者模式和这里有一点微小的差别但根本思想是一样的。至于是什么微小的差别等讲到RxJava原理的时候你就理解了。 三. 装饰器模式 1. 什么是装饰器模式 可以通俗地理解为在不改变原有对象的基础上增强原有对象的功能。 2. Android中有没有例子 我们天天接触的Context就是一个非常典型的装饰器模式的例子。 Android中的Context对象是一个核心的组件它经常被装饰器进行功能扩展和定制。例如Activity、Service、BroadcastReceiver等都是Context的子类它们在基本的Context功能上添加了更多的生命周期管理、界面交互和事件处理等功能。 相当于在没有修改Context的基础上对Context进行了功能的增强。 3. 写个代码 因为我们平时关于装饰器模式写的不是很多所以我觉得有必要以一个很简单的例子向大家再进一步介绍下装饰器模式。 假设你经营一家咖啡店你的顾客可以根据自己的口味定制咖啡。首先我们有一个抽象的咖啡接口 public interface Coffee {String getDescription();double getCost(); }然后我们还有一个具体的咖啡实现 public class SimpleCoffee implements Coffee {Overridepublic String getDescription() {return Simple Coffee;}Overridepublic double getCost() {return 1.0;} }现在我们不满足于一个简单的咖啡SimpleCoffee而是要有一个可以加入牛奶的咖啡。相当于对原有的咖啡功能进行增强这时我们就可以借助装饰器模式来实现。 首先声明一个装饰器模式的抽象类也实现Coffee接口。 public abstract class CoffeeDecorator implements Coffee {protected Coffee coffee;public CoffeeDecorator(Coffee coffee) {this.coffee coffee;}Overridepublic String getDescription() {return coffee.getDescription();}Overridepublic double getCost() {return coffee.getCost();} }然后可以创建一个具体的装饰器类 public class MilkDecorator extends CoffeeDecorator {public MilkDecorator(Coffee coffee) {super(coffee);}Overridepublic String getDescription() {return super.getDescription() , Milk;}Overridepublic double getCost() {return super.getCost() 0.5;} }这样我们在使用的时候顾客可以选择加入咖啡而不会改变原有的咖啡类 Coffee simpleCoffee new SimpleCoffee(); Coffee coffeeWithMilk new MilkDecorator(simpleCoffee); System.out.println(coffeeWithMilk.getDescription()); // 输出Simple Coffee, Milk System.out.println(coffeeWithMilk.getCost()); // 输出1.5为什么实现了同一个接口 这里大家也会发现一个细节就是装饰器类和被装饰类都实现了同一个接口在这个例子中就是Coffee接口。这样做的好处就是可以统一以Coffee来接收装饰器类和被装饰类这使得客户端可以根据需求自由组合装饰器对象以获得所需的功能组合方便多次嵌套自己可以作为装饰器类也可以作为被装饰类实现更灵活符合“基于接口而非实现”的规范。 举个例子假如客户还想加糖那么就可以新增一个加糖的装饰器类 public class SugerDecorator extends CoffeeDecorator {public SugerDecorator(Coffee coffee) {super(coffee);}Overridepublic String getDescription() {return super.getDescription() , Suger;}Overridepublic double getCost() {return super.getCost() 0.3;} }然后顾客如果既想加糖又想加牛奶就可以这样实现 Coffee simpleCoffee new SimpleCoffee(); Coffee coffeeWithMilk new MilkDecorator(simpleCoffee); Coffee coffeeWithSuger new SugerDecorator(coffeeWithMilk);可以看到MilkDecorator本身既是装饰器类也是被装饰类使得原有对象的功能可以定制化地增强。而能够实现这些的原因就是装饰器类和被装饰类实现了同一个接口 四. 总结 本篇文章内容就到这里了其实本篇文章没有提到RxJava的具体知识但其实处处都有RxJava的影子。在本篇文章中你只需要牢牢掌握观察者模式和装饰器模式理解我举的例子就可以了。等看到RxJava的原理的文章时你就会豁然开朗 Android 学习笔录 Android 性能优化篇https://qr18.cn/FVlo89 Android 车载篇https://qr18.cn/F05ZCM Android 逆向安全学习笔记https://qr18.cn/CQ5TcL Android Framework底层原理篇https://qr18.cn/AQpN4J Android 音视频篇https://qr18.cn/Ei3VPD Jetpack全家桶篇内含Composehttps://qr18.cn/A0gajp Kotlin 篇https://qr18.cn/CdjtAF Gradle 篇https://qr18.cn/DzrmMB OkHttp 源码解析笔记https://qr18.cn/Cw0pBD Flutter 篇https://qr18.cn/DIvKma Android 八大知识体https://qr18.cn/CyxarU Android 核心笔记https://qr21.cn/CaZQLo Android 往年面试题锦https://qr18.cn/CKV8OZ 2023年最新Android 面试题集https://qr18.cn/CgxrRy Android 车载开发岗位面试习题https://qr18.cn/FTlyCJ 音视频面试题锦https://qr18.cn/AcV6Ap
http://www.w-s-a.com/news/193998/

相关文章:

  • 做网站哪里找大学的一级或二级域名
  • 没有静态ip可以做网站服务器上饶网站制作需要多少钱
  • 网站建设wangzhii做国外网站做什么内容
  • 网站建设 搞笑笑话经典 wordpress主题下载
  • 做网站要懂哪些wordpress 站点网络
  • 郑州外贸网站建设公司排名网站设计做啥好
  • 网站开发合同付款比例wordpress调用指定文章内容
  • 湖北平台网站建设哪里好辽宁建设工程信息网官网平台
  • 公司优化是什么意思?洛阳seo博客
  • 普通建站网站首页制作模板
  • 江苏城乡与住房建设厅网站wordpress 添加导航
  • 免费单页网站在线制作网站制作与网站建设pdf
  • 网站开发使用云数据库技术教程大连模板开发建站
  • 佘山网站建设创造网站需要多少钱
  • 南海佛山网站建设网站维护需要什么技能
  • 阿里云服务器开源做几个网站想找公司做网站
  • 一般做网站是用什么语言开发的域名查询 查询网
  • 地方门户网站源码下载揭阳专业网站建设
  • 网站做优化好还是推广好wordpress百家号模版
  • 淘宝网网站建设的的意见校园微网站建设
  • 小说网站建设之前需求分析免费下载京东购物
  • 园林景观设计案例网站wordpress 文章内容页
  • 网站什么做才会更吸引客户楚雄网站开发rewlkj
  • 电商网站构建预算方案视频制作网站怎么做
  • 包装设计灵感网站ps软件下载电脑版多少钱
  • 手机网站图片做多大原网站开发新功能
  • 网站设计培训成都陕西网站建设公司哪有
  • expedia电子商务网站建设辽宁网站设计
  • 深圳网站建设网站运营绥芬河市建设局网站
  • 家政服务网站做推广有效果吗做图软件ps下载网站有哪些