
设计模式
文章平均质量分 80
jason_mai
这个作者很懒,什么都没留下…
展开
-
Android点击事件被丢弃的类型与原因
InputDispatcher处理点击事件是单线程串行处理的,如果队列前面的点击事件一直无法处理,会导致后续点击事件迟迟无法响应,给用户的感知就是手机卡顿,所以在一些场景下,InputDispatcher必须丢弃一些未处理完成的点击事件。原创 2023-02-01 22:57:52 · 552 阅读 · 0 评论 -
还分不清适配器模式和装饰者模式?用一张表给你说明白
适配器模式和装饰者模式的区别,都在这张表里面了适配器模式装饰者模式关键字改接口,重复利用,包装模式不改接口,增强行为,包装模式定义适配器模式将一个类的接口,转换为客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。装饰者模式允许用户用组合的方式而不是继承对已有的类的功能进行扩展,扩展后的类为装饰者,被扩展的类为被装饰者,装饰者与被装饰者具有相同的方法...原创 2020-05-05 13:23:01 · 324 阅读 · 0 评论 -
用遥控器的例子逐步介绍命令模式
命令模式摘要这一篇文章用一个非常非常详细的用遥控器控制家电的例子来解释命令模式,用命令模式和不用命令模式的情况都有了具体的代码,方便大家做出比较,进而得到命令模式的优缺点。一开始我不会直接给出命令模式的定义,在例子中适合的时候我才会给出定义,方便读者循序渐进地理解命令模式的设计动机。这篇文章写了很久,各位看官走过路过不要错过,都进来看一眼吧。模式动机在软件设计中,我们经常需要向某些对象发...原创 2020-05-01 18:04:54 · 1567 阅读 · 0 评论 -
关于单例模式你需要知道的都在这了
关于单例模式你需要知道的都在这了定义单例模式确保一个类只有一个实例,并提供一个全局访问点做法把类的构造函数设置为private,用一个静态变量存储本身的唯一一个实例,然后通过静态方法获取唯一的实例。应用场景下面列举的应用场景引用于https://blog.youkuaiyun.com/tanyujing/article/details/14160941Windows的Task Manager(...原创 2020-04-21 12:05:46 · 489 阅读 · 0 评论 -
用抽象工厂模式开奶茶店
用抽象工厂模式开奶茶店相关概念产品等级结构 :产品等级结构即产品的继承结构,如一个抽象类是电视机,其子类有海尔电视机、海信电视机、TCL电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等级结构,抽象电视机是父类,而具体品牌的电视机是其子类。产品族 :在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品,如海尔电器工厂生产的海尔电视机、海尔电冰箱,海尔电视...原创 2020-04-20 13:57:19 · 778 阅读 · 0 评论 -
用工厂方法模式吃上不同品种的水果
用工厂方法模式吃上不同品种的水果定义工厂方法模式(Factory Method Pattern)定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法模式让类把实例化推迟到子类。适用场景我们创建实例的一般方式是用new,举个最简单的例子Fruit apple=new Apple();apple的类型是接口或者抽象类,符合“针对接口编程,而不是针对实现编程”的设计原则,但n...原创 2020-04-19 11:40:36 · 1586 阅读 · 0 评论 -
如何通过装饰者模式把你的猫变成女朋友
学习装饰者模式–通过详细的代码与例子定义装饰者模式允许用户用组合的方式而不是继承对已有的类的功能进行扩展,扩展后的类为装饰者,被扩展的类为被装饰者,装饰者与被装饰者具有相同的方法签名,而且有自己另外的方法。应用场景当使用继承的方式无法很好地对代码进行扩充时,可以考虑用装饰者模式,比如有一个奶茶基类,开始只有奶和茶,想做出珍珠奶茶,我们用继承实现一个珍珠奶茶类,想做出芒果味奶茶,我们用继承实...原创 2020-04-17 10:10:26 · 439 阅读 · 2 评论 -
了解观察者模式--通过详细代码与例子
观察者模式应用场景建立一个对象与多个对象之间的一对多的依赖关系,一个对象状态发生改变时将会通知其他对象,发生状态改变的对象为subject,变化主体,被通知的对象为observer,一个subject可以有多个observer,且observer之间相互独立,可以随机增减observer。常见的例子有微信的公众号与关注的人,公众号为subject,关注的人为observer,当有新推送时,所有...原创 2020-04-16 14:47:14 · 315 阅读 · 0 评论 -
了解策略模式--通过详细代码与例子
通过详细的例子与代码了解策略模式应用场景完成一项任务,往往可以有多种策略可以实现,要想灵活选择策略和添加新策略,可以使用策略模式。比如从数组中查找某个值的任务,我们可以从头到尾遍历查找,可以从尾到头遍历查找,如果数组有序,还可以用二分法查找。不同的数组可以采用不同的策略来实现查找任务,我们还想让数组的查找方式能设置与修改,这时候就可以用上策略模式,把不同的查找方法封装成独立的类,数组可以自行...原创 2020-04-15 12:14:57 · 283 阅读 · 0 评论