一 六大设计原则
1. 单一原则
2. 开闭原则
3. 里氏替换
4. 接口隔离
5. 依赖倒置原则
6. 迪米特原则

单一职责原则
一个class文件只做一件事情,如果需要做更多的工作,用继承的方式扩展。

开闭原则
对继承开放,对修改关闭。

里氏替换原则
继承的时候不能改变基类的逻辑。

接口隔离原则
接口最小化,一个接口只做一个小功能

依赖倒置原则
只依赖接口 不依赖实现

迪米特原则

最小支持原则

二 视图 数据 逻辑 分离 静态的角度
1.MVC
Model: 数据 包括了数据 对数据的操作(不依赖视图的操作)
View: 视图 不同的模式有不同的定
义;xml+Activity+fragment
Controller :view 和model的通信和交互
缺陷:Controller 的权利太大,功能增加,Controller会臃肿。

2.MVP
相对于MVC
优点:activity 只剩下view,present承担了view和model之间的交互,满足了单一职责原则,视图数据逻辑很清晰。
缺点:引入了 interface ,方法增多,修改一个方法需要改动多处。

3.MVVM
必须要使用dataBinding
在使用的module和app的module 都加入

    buildFeatures {dataBinding = true}

这样就开启了dataBinding

使用dataBinding的双向数据绑定 ,消除了MVP模式下接口引入过多的问题。ViewModel类似于MVP的Presenter 角色。

关于mvvm框架的封装
模块化 层次化 控件化 单一职责原则 解耦 viewmodel单一

base 基础的类
common 公共的view 组件化 路由 service 公共接口

自定义view的viewmodel独立定义,满足单一职责原则,
自定义view只需要知道自己负责的数据。

工厂方法(创建型) 模板(行为型,算法)

MVX相关设计模式的理解。相关推荐

  1. Java查漏补缺(08)关键字:static、单例设计模式、理解main方法、类的成员之四:代码块、final关键字、抽象类、接口、内部类、枚举类、注解、包装类

    Java查漏补缺(08)关键字:static.单例设计模式.理解main方法.类的成员之四:代码块.final关键字.抽象类.接口.内部类.枚举类.注解.包装类 本章专题与脉络 1. 关键字:stat ...

  2. CTR经典模型串讲:FM / FFM / 双线性 FFM 相关推导与理解

    CTR 系列文章: 广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码) CTR经典模型串讲:FM / FFM / 双线性 FFM 相关推导与理解 CTR深度学习模型之 ...

  3. 设计模式(个人理解)

    设计模式(个人理解) 工厂模式: 应用实例:一个工厂有一条流水线可以生产不同的产品,当客户需要某个产品时,直接告诉工厂产品名称.工厂就会用流水线生产对应的产品.客户不用关心产品时如何生产出来的,只需要 ...

  4. 23种设计模式通俗理解

    23种设计模式通俗理解 1.根据目的来分 2.根据作用范围来分 3.GoF的23种设计模式的功能 1.FACTORY 工厂方法 2.BUILDER建造者模式 3.FACTORY METHOD抽象工厂 ...

  5. php设计模式自我理解

    什么是php的设计模式? 设计模式?听起来很高大上的感觉,有一些做PHP开发一两年的同学,当有人问起他什么是php的设计模式时,他可能会说出几种常见的设计模式,例如:单例模式.工厂方法模式.建造者模式 ...

  6. 设计模式的理解与举例

    设计模式介绍 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案.这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的. 设计模式是一套被反复使用的.多数人知晓的.经过 ...

  7. 设计模式的理解:对23个设计模式的总结

    设计模式名 ,链接可用 文档可下载:https://download.csdn.net/download/superSmart_Dong/16625368   设计模式 意图 适用的场景 关键实现过程 ...

  8. 设计模式的理解的总结

    参考的博客:http://blog.csdn.net/wangeen/article/details/8272501 最近又把设计模式翻了一边,写个个人总结,这个总结比较简单,主要是一些理解,对于他们 ...

  9. 构架、框架和设计模式的理解

    一个 架构师 构架了一个框架,约束框架使用者只能使用规定的结构来进行二次开发. 架构是指软件结构的专用名词,构架只是架构的另一种叫法. 框架是半成品.典型地,框架是系统或子系统的半成品. 1.设计模式 ...

  10. 设计模式|理解单一职责原则

    软件质量保障 专注测试圈,自动化测试.测试平台开发.测试新技术.大厂测试岗面经分享, 可以帮忙内推BATJ等大厂!欢迎加VX沟通交流: ISTE1024 很早想总结一些关于设计模式的文章了,回头看一下 ...

最新文章

  1. c++ 多线程 类成员函数_多线程(C++/Python)
  2. 树莓派2+无线网卡=钓鱼热点
  3. First java program
  4. python123读取文本文件并排序输出_Python按字段对文本文件排序
  5. 解析markdown_利用 markdown 生成页面实践
  6. 计算机英语讲课笔记04
  7. 人工智能(9)---人工智能的发展趋势是什么?人工智能的行业应用
  8. php-fpm安装包_linux下安装php php-fpm(转载)
  9. 程序设计基础是C语言吗,程序设计基础(C语言)
  10. 离散数学及其应用 前言
  11. php emoji 乱码,微信emoji昵称展示乱码问题
  12. 杭州/北京内推 | 阿里达摩院招聘视觉生成方向学术实习生(人才计划)
  13. 登录英雄联盟显示正在连接服务器,windows10系统登录英雄联盟出现连接不上服务器如何解决...
  14. 渗透测试不同阶段的开源/商业工具
  15. 关于opencv的rows和cols的理解
  16. SCARA、通用6轴机器人奇异点位置与问题分析
  17. Spring In Action 4 学习笔记(一)Spring概览
  18. react项目创建步骤
  19. 导入d2lzh_pytorch报错
  20. Android webView拍照与展示相册图片

热门文章

  1. webbrowser1 脚本报错_webbrowser脚本错误的解决办法
  2. 计算机专业买笔记本电脑游戏本还是商务本好,购买笔记本电脑,游戏本真的是第一选择吗?...
  3. 红警2(红色警戒)之尤里的复仇 局域网对战联机方法
  4. 数字信号处理中均值、方差、均方值、均方差计算和它们的物理意义
  5. 个人学习笔记——庄懂的技术美术入门课(美术向)06
  6. 为什么tumblr起作用
  7. 装黑苹果的那些事儿(以ThinkpadE540为例)
  8. 一文快速了解Docker和Kubernetes
  9. 《梦想新大陆》美术研发手札
  10. 如何使用TeamViewer远程控制电脑?三步即可成功