- MVC、MVP和MVVM。谈谈MVC、MVP和MVVM,好在哪里,不好在哪里 ?MVVM中各层在Android开发中的对应关系。
枚举单例解决反射和序列化问题,
Enum是个抽象类,声明枚举类时自动继承。没有无参构造函数,只有一个参数为(String.class,int.class)构造器。
反射API Constructor#newInstance()中有判断如果是Modifeir.ENUM则报IllegalArgumentExeption。
https://blog.csdn.net/u011277123/article/details/104523638
通过静态内部类实现的单例有啥优点?
五种单例都能解决多线程安全问题。但是不同程度上仍要考虑序列化、反射对单例的破坏问题。
简单工厂模式
工厂方法模式
抽象工厂模式
使用工厂模式实现简单的DI框架
通过返回自身实现的设置属性同builder模式有什么不一样?
类适配器
类适配器使用继承关系实现
对象适配器
对象适配器使用组合关系实现
处理树形结构问题
同步阻塞式
异步非阻塞式
EventBus框架
分支逻辑实现方式
switch-case分支参照状态图将状态转移原模原样暴力直译。
查表法实现方式
二维数组来表示状态转移图。适于状态多且状态转移比较复杂的状态机。
利用状态模式
适于状态不多、状态转移也比较简单,但事件出发执行的动作包含的业务逻辑比较复杂的状态机。
MVC、MVP和MVVM 不是应用架构,只是解决数据、逻辑、视图、生命周期等痛点问题的解决方案,也只是一种设计模式。MVX这些设计模式涉及到的角色,与应用架构分层之间有着不尽相同的对应关系。在实践中有着各自的优缺点。
-
极客时间 - 设计模式之美专栏