移动架构
JT·Zeng
这个作者很懒,什么都没留下…
展开
-
移动架构学习笔记十三:仿照ButterKnife手写View注入框架
前言 上一篇博客中仿照XUtils手写了一个View注入框架,这个框架的核心原理是用到了反射,不停反射,全程反射。说实话,实际项目中我是不会选择XUtils这样的框架的,毕竟大量的反射还是有损性能的。今天我们将使用另外一种思路来实现View的注入,避免使用大量的反射,从而提升性能。今天的注入框架是参考ButterKnife来实现的,ButterKnife现在是最流行的注入框架,很多小伙伴都在使用,但是不知道大家清不清楚ButterKnife是用什么原理实现的,今天我们就抽丝剥茧来聊一聊ButterK..原创 2020-08-26 17:25:00 · 159 阅读 · 0 评论 -
移动架构学习笔记十二:代理模式(Proxy )续
前言 前段时间学习了代理模式,并写了一篇笔记:移动架构学习笔记九:代理模式(Proxy )。当中有一些遗留问题,后来反复琢磨之后,觉得再写一篇笔记解决当时的问题。 遗留问题 笔记的最后一个问题:有没有办法将代理运用到所有事物呢?当时的代码在我后来反复的琢磨后,发现并不能用于代理所有的事物,因为在LogHandler类中,明确持有了Car类,导致它其实只能代理Car类。要想用于代理多有事物,得放宽当中引用的事物。后来修改了代码如下:public class Main { pub..原创 2020-08-19 17:15:45 · 170 阅读 · 0 评论 -
移动架构学习笔记十一:状态模式(State)
状态模式 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。主要解决对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。 类图 案例 我们参考上面的类图,提一个状态模式的应用案例。玩过实况足球、FM等游戏的朋友都知道,足球运动员自身的状态往往会决定在场上的表现。假定球员状态有好和坏,我们根据球员状态不同模拟在场上的不同表现。我们先来一个反面教材,对照着看,下面是普通程序员的代码:public class Player ...原创 2020-08-14 11:25:49 · 209 阅读 · 0 评论 -
移动架构学习笔记十:迭代器模式(Iterator)
迭代器模式 提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。 角色 1.Iterator(迭代器)迭代器定义访问和遍历元素的接口2.ConcreteIterator (具体迭代器)具体迭代器实现迭代器接口对该聚合遍历时跟踪当前位置3.Collection(集合)聚合定义创建相应迭代器对象的接口4.ConcreteCollection (具体集合)具体聚合实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个...原创 2020-08-11 17:07:38 · 203 阅读 · 0 评论 -
移动架构学习笔记九:代理模式(Proxy )
代理模式 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 角色 抽象角色(Movable):通过接口或抽象类声明真实角色实现的业务方法。代理角色(CarProxy):实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色(Car):实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。 案例 下面我...原创 2020-08-07 11:35:57 · 234 阅读 · 0 评论 -
移动架构学习笔记八:化主动为被动的观察者模式
目录观察者模式角色1、抽象主题(Subject):2、具体主题(Concrete Subject):3、抽象观察者(Observer):4、具体观察者(Concrete Observer):案例总结 观察者模式 观察者模式(有时又被称为模型(Model)-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者...原创 2020-08-04 11:39:07 · 870 阅读 · 0 评论 -
移动架构学习笔记七:六大设计原则
单一职责原则 单一职责原则(SRP:Single responsibility principle)又称单一功能原则。它规定一个类应该只有一个发生变化的原因。特点 降低类的复杂性, 对类或接口的职责有清晰明确定义 提高可读性 提高可维护性 降低变更引起的风险, 接口改变只影响相应的实现类, 不影响其他类 重点接口一定要做到单一职责;类的单一职责比较难以实现, 尽量做到只有一个原因引起变化;一个方法尽可能做一件事, 能分解就分解, 分解到原...原创 2020-07-30 11:20:02 · 145 阅读 · 0 评论 -
移动架构学习笔记六:策略模式,Comparable和Comparator
目录策略模式组成实现总结 策略模式 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 组成 抽象策略角色: 策略类,通常由一个接口或者抽象类实现。具体策略角色:包装了相关的算法和行为。环境角色:持有一个策略类的引用,最终给客户端调用。 实.原创 2020-07-27 11:48:26 · 179 阅读 · 0 评论 -
移动架构学习笔记五:最简单的单例模式
前言 说到单例模式,应该是设计模式里面最简单也最容易理解的一个模式了。只要是有过工作经验的程序猿,闭着眼睛应该也能写出一个单例模式的例子。不过呢,如果抱着学究精神来看单例模式,里面的水也是不浅的。 单例模式 一个类有且仅有一个实例,并且自行实例化向整个系统提供。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问。使用工厂方法来限制实例化过程。这个方法应该是静态方法..原创 2020-07-23 15:26:25 · 110 阅读 · 0 评论 -
移动架构学习笔记四:简单工厂模式与抽象工厂模式
目录前言简单工厂模式抽象工厂模式总结简单工厂模式使用场景:抽象工厂使用场景: 前言 从今天开始,再次系统学习设计模式。这是第三次学习设计模式,每次学习都会有不一样的收获。为什么要反复学习设计模式呢,打个比方,编程语言就像武功招式,而设计模式就像内功。没有内力修为,再好的武功招式也是花架子,发挥不了最强的威力。而内力不是一朝一夕能练成的,大多靠平时工作中的积累和反复总结。所以每工作多两三年,再回头看看设计模式,从中得到的东西都不一样。今天从工厂模式开始,把简单工厂模式和抽象工原创 2020-07-21 15:30:43 · 127 阅读 · 0 评论 -
移动架构学习笔记三:UML之时序图
目录前言时序图角色(Actor)对象(Object)生命线(Lifeline)控制焦点(Focus of Control)消息(Message)同步消息=调用消息(Synchronous Message)异步消息(Asynchronous Message)返回消息(Return Message)自关联消息(Self-Message)Combined Fragments总结 前言 之前学习了UML中的用例图和类图,今天学习时序图,感觉用例图、类图加原创 2020-07-19 15:00:07 · 710 阅读 · 0 评论 -
移动架构学习笔记二:UML之类图
前言 之前一篇博文学习了UML之用例图,今天将学习UML中的类图。如果是做Android开发,或者在中小型企业,UML可能用得并不多。但是想要更进一步,进入移动架构的行列,了解UML还是必不可少的技能。 UML类图 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)1.泛化(Generaliz...原创 2020-07-18 15:12:42 · 257 阅读 · 0 评论 -
移动架构学习笔记一:UML之用例图
目录前言UML用例图参与者(Actor)用例(Use Case)关系(Relationship) 前言 作为Android前端开发工程师,想要提升自己,学习移动架构是必不可少的。学习移动架构,首先需要了解UML,不需要精通,但至少要了解。了解UML不管对自己思路上的整理,还是痛他人的沟通,都会有很大的帮助。今天首先来学习用例图。 UML用例图 用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示一个外部用户能够观察到的系统功能模型图。用例图多用于...原创 2020-07-17 17:14:47 · 272 阅读 · 0 评论