本文章以读《Android源码设计模式》后做下简记。单例模式介绍单例模式可谓是都会用到的一个设计模式。单例顾名思义只有一个实例。就像规定任何时候你只能有一个老婆或直接没有老婆一样(都是泪)。Android中的LayoutInflater则使用的单例来进行访问。UML使用场景是在全局下,需要只有该类一个实例,避免产生多个对象消耗过多的资源,如访问IO或者数据库等资源的对象。这样访问该类中变量也是唯一
# Python源码设计模式 在考虑Python源码设计模式时,我们通常会使用一些经典的设计模式来解决问题。设计模式是一种通用的解决方案,可以帮助我们更好地组织代码,并提高代码的可重用性和可维护性。 ## 工厂模式 工厂模式是一种创建型设计模式,它使用工厂方法来处理对象的创建而不需要指定具体类。在Python中,我们可以通过定义一个工厂函数来实现工厂模式。 ```python class
原创 2024-02-22 07:52:45
27阅读
文章目录 前言一、单例模式二、策略模式三、代理模式四、迭代器模式五、发布-订阅模式(观察者模式)六、命令模式七、组合模式八、模板方法模式九、享元模式十、职责链模式十一、中介者模式十二、装饰者模式十三、状态模式十四、适配器模式总结 前言借着这段时间拜读了曾探大神的《JavaScript设计模式与开发实践》一书。本文以此总结一下JS常见的设计模式与实现方法,主要做一些笔记以方便自己过后复习与加深理解,
Android设计模式源码解析之策略模式本文为 Android 设计模式源码解析 中策略模式分析 Android系统版本:4.4.2 1. 模式介绍 模式的定义策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。注:针对同一类型操作,将复杂多样的处理方式分别开来,有选择的实现各自特有的操作。 模式的使用场
No1: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 No2: 在Android源码中,最常用到的Builder模式就是AlertDialog.Builder No3: WindowManager在java层的具体实现是WindowManagerImpl,Window对
No1: Activity继承于ContextThemeWrapper,继承于ContextWrapper,继承于Context。 No2: Context中方法的所有实现均由ContextImpl类承担。 No3: 启动一个Activity需要3个非常重要的对象:Application、Conte
No1: 定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 No2: 使用场景: 1)针对同一类型问题的多种处理方式,仅仅是具体行为有差别时 2)需要安全的封装多种同一类型的操作时 3)出现同一抽象类有多个子类,而又需要
转载 2017-11-01 11:30:00
185阅读
2评论
《Android源码设计模式解析与实战》读书笔记一、引言这是工作的第10个月了,忙的时候总是不自觉的会发现,时间过得非常快。刚工作时参加培训的各种事情都还历历在目,但是已经是将近一年前的事情了。      并且最近一段时间,工作发生了一些变化,开始带技术团队进行版本开发,工作不再是简单的功能开发,模块开发,而是增添了许多需求的评审,需求的分解,任务的派分,代码的审核等
<! flowchart 箭头图标 勿删 引入 我是从Stack Overflow上看到的问题,感觉这个答案真心不错,所以翻译过来看看,由于本文水平有限,不喜勿喷,原文链接:Examples of GoF Design Patterns in Java’s core libraries 问题 我正在
享元模式介绍享元模式也是用的比较多的一个模式。其目的是达到部分状态可共享,可共享的状态为内部状态(不随外部环境改变),不可共享为外部状态(可随外部环境改变)。原理即是做缓存对象处理。比如Android中的Message,推荐使用handler的obtain方法来获取一个message,这种方式获取的message是从message池里获取出来使用的,当使用完成之后,又recycle放回messag
IT行业,一直讲一句话,拼到最后都拼的是“内功”,而内功往往就是指我们处理问题的思路、经验、想法,而对于开发者来说,甚至对于产品也一样,都离不开一个“宝典”,就是设计模式。今天我们一起借助Android源码去探索一下设计的六大基本原则。同时结合我工作经验中的两个例子,来总结实践一下。1.背景&定义定义: 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计
Vue设计模式响应式原理认识Object.prototype.constructor对象的构造函数改变constructorget、setObject.defineProperty()MV = {};o.construc
原创 2023-12-05 10:20:11
97阅读
vue作者在最初设计vue的时候参考了mvvm这个模型。没有完全遵循mvvm,是在一定程度上遵循了这个模型。根据这个模型设计vue里面的模型。
原创 2023-12-19 11:11:49
126阅读
No1: 模板方法模式包括:抽象类(其中定义了一系列顺序方法)、具体实现类A、具体实现类B 如果子类有实现不一样的细节,重写父类的某个方法即可 No2: AsyncTask对象调用execute方法后会依次执行onPreExecute、doInBackground、onPostExecute或onP
No1: 4种MediaPlayer Factory分别会生成不同的MediaPlayer基类:StagefrightPlayer、NuPlayerDriver、MidiFile和TestPlayerStub。四者均继承与MediaPlayerBase。 No2: 抽象工厂模式在android源码
No1: 懒汉单例模式优缺点分析 优点:单例只有在使用时才会被实例化,在一定程度上节约了资源 缺点:第一次加载时需要及时进行实例化,反应稍慢,最大的问题是每次调用getInstance都进行同步,造成不必要的同步开销。 所以这种模式一般不建议使用 No2: Double Check Lock(DCL
转载 2017-10-30 15:26:00
89阅读
2评论
## 设计模式:组合模式架构源码分析 ### 1. 引言 在软件开发过程中,我们经常面临着需要处理树状结构的问题。比如,文件系统中的文件和文件夹,公司组织结构中的部门和员工等等。这些问题都可以通过组合模式来解决,这种模式可以帮助我们以统一的方式处理树状结构,并且使得代码更加灵活和可扩展。 本文将介绍组合模式的基本概念和实现原理,并通过一个示例代码来说明如何应用组合模式来解决树状结构的问题。
原创 2023-07-22 02:14:12
93阅读
结合Android源码和图片加载的例子,介绍设计模式的同时,在例子中实际运用,更易于读者对设计模式的理解和使用。本篇博客结合书中图片加载的例子和自己对知识点的理解,侧重记录下设计模式的使用,原理部分略过。第一章 走向灵活软件之路——面向对象的六大原则1.1 优化代码的第一步——单一职责原则    个人理解:“核心思想就是类的抽象和封装,将相同功能的代码封装
No1: 享元模式是对象池的一种实现。享元模式用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享、避免创建过多对象的效果,这样一来就可以提升性能、避免内存移除等。 No2: UI不能够在子线程中更新。因为并不是UI不可以在子线程更新,而是UI不可以在不是
No1: 原型模式使用场景: 1)类初始化需要消耗非常多的资源,这个资源包括数据、硬件资源等,通过原型复制避免这些消耗 2)通过new产生一个对象需要非常繁琐的数据准备货访问权限,这是可以使用原型模式 3)一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式复制多
转载 2017-10-31 11:16:00
222阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5