设计模式与架构
文章平均质量分 83
设计模式与架构
贵公子
Running Men ,Keep Moving ...
展开
-
android mvc、mvp、mvvm架构模式
模型负责存储数据和业务逻辑,视图负责显示数据,视图模型负责协调模型和视图之间的交互。在 MVP 架构中,View 和 Model 分别负责 UI 和数据的处理,Presenter 充当了中间层的角色,负责处理 View 和 Model 之间的交互,并将结果传递给 View 进行显示。MVVM 的优点是通过数据绑定机制实现了模型和视图的自动更新,降低了代码的复杂度,提高了代码的可维护性和可复用性。MVP 的优点是模型和视图的解耦,通过展示器来协调模型和视图之间的交互,提高了代码的可维护性和可复用性。转载 2023-07-28 15:33:37 · 128 阅读 · 0 评论 -
命令模式下的异步消息处理(Handler,Message,Looper,Thread)
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DOEenQ5O-1690172531979)(http://hi.csdn.net/attachment/201202/26/0_13302619869jXo.gif)]稍微有一些变种,虽然没有 command 接口,没有标准的 execute() 方法可以调用。中的 handleMessage 方法来完成不同的 action。下文中如果图片不能完全展示可以在新标签页打开图片。下面的是标准的命令模式的类图。转载 2023-07-24 12:22:58 · 101 阅读 · 0 评论 -
JAVA设计模式--命令模式
命令 (Command) 模式又叫作动作 (Action) 模式或事务 (Transaction) 模式,是一种对象的行为模式。将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。命令模式的本质:封装请求设计意图:命令模式通过将请求封装到一个命令 (Command) 对象中,实现了请求调用者和具体实现者之间的解耦。命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。转载 2023-07-24 12:06:17 · 824 阅读 · 0 评论 -
从Android代码中来记忆23种设计模式
确保单例类只有一个实例,并且这个单例类提供一个函数接口让其他类获取到这个唯一的实例。什么时候需要使用单例模式呢:如果某个类,创建时需要消耗很多资源,即 new 出这个类的代价很大;或者是这个类占用很多内存,如果创建太多这个类实例会导致内存占用太多。关于单例模式,虽然很简单,无需过多的解释,但是这里还要提个醒,其实单例模式里面有很多坑。我们去会会单例模式。转载 2023-07-23 17:42:08 · 318 阅读 · 0 评论 -
我给面试官讲解了单例模式后,他对我竖起了大拇指!
面试官问什么是单例模式时,千万不要答非所问,给出单例模式有两种类型之类的回答,要围绕单例模式的定义去展开。单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。懒汉式、饿汉式,解决了并发安全和性能低下问题(3)饿汉式:在类加载时已经创建好该单例对象,在获取单例对象时直接返回对象即可,不会存在并发安全和性能问题。(4)在开发中如果对。转载 2023-07-23 17:30:30 · 90 阅读 · 0 评论 -
如何优雅的在业务中使用设计模式(代码如诗)
前言有段时间没写文章了,最近沉迷Rust,无法自拔,锈儿有毒;这真是门非常有趣的语言,很多地方的设计,真的是满足了我所有的向往。当然,这也不是一门简单的语言,提出所有权的概念,引入了极多符号:mut、&mut、ref mut、&、*、as_mut、as_ref。。。让人头秃。。。之前看到过一句话,觉得很不错:学习Rust并不会给你带来智商上的优越感,但或许会让你重新爱上编程。大家如果阅读过一些开源框架的源码,可能会发现其中数不尽的抽象类,设计模式拈手而来,在功能框架中,可以使用设转载 2021-09-09 16:55:32 · 514 阅读 · 0 评论 -
从android中学习23种设计模式
前言我曾经也有个决心,想把23种设计模式全部记住,但总是背了又忘,忘了又继续背,总是记不住。虽然网上有一大堆教学,分析,自己写一遍,比看十遍深刻多了。顺便学几个单词。话说回来,我们无时无刻都在根据设计模式写代码。设计模式的七大原则尽量用最简单的话描述1、开闭原则(Open Closed Principle)对类的扩展是开放,对修改关闭。在程序需要扩展的时候,对于一个类,不要去修改原来的代码,而是通过继承的方式去扩展这个类。目的:降低维护风险2、单一职责原则(Single Responsibl转载 2021-08-20 15:12:32 · 458 阅读 · 0 评论 -
深入了解架构组件之ViewModel
官方文档连接(需翻墙)一、介绍ViewModel类是被设计用来以可感知生命周期的方式存储和管理 UI 相关数据,ViewModel中数据会一直存活即使 activity configuration发生变化,比如横竖屏切换的时候。以上是官网的话,就不翻译了没啥意思,英语也不好。还是以我的大白话说说吧。先来看 ViewModel 可以解决那些痛点。1、数据持久化我们知道在屏幕旋转的 时候 会经历 activity 的销毁与重新创建,这里就涉及到数据保存的问题,显然重新请求或加载数据是不友好的。在 V转载 2021-07-27 11:34:07 · 236 阅读 · 0 评论 -
Android彻底组件化方案实践
得到Android组件化方案已经开源,参见Android组件化方案开源。方案的解读文章是一个小的系列,这是系列的第一篇文章:1、Android彻底组件化方案实践2、Android彻底组件化demo发布3、Android彻底组件化-代码和资源隔离4、Android彻底组件化—UI跳转升级改造5、Android彻底组件化—如何使用Arouter...转载 2019-07-04 16:42:44 · 602 阅读 · 0 评论 -
Android设计模式(二)- Builder模式
...转载 2019-07-03 16:48:53 · 261 阅读 · 1 评论 -
Android MVVM 系列之 Databinding(三)
Android MVVM 系列之 Databinding(三)所有博文会不定期的更新一下的,文章有不妥欢迎大家提建议!这篇文章主要讲 Databinding 中注解的使用,给大家整理个字典出来,Databinding 中公开的 Api 中有以下注解@Bindable@BindingAdapter@BindingConversion@Bi...转载 2019-06-19 17:54:59 · 556 阅读 · 0 评论 -
Android设计模式-总结+索引
原文地址 http://blog.csdn.net/qq_25806863/article/details/70049982通过《Android源码设计模式解析与实战》,对23种设计模式总算有了个初步的了解。书中对设计模式的介绍并不深奥,也没有很深究这些设计模式,但是对于之前没看过设计模式的我来说,让我对每...转载 2018-11-17 21:16:16 · 146 阅读 · 0 评论 -
java单例模式双重检验锁的优缺点?还有哪些实现方式?列举一些使用场景
但是在 JVM 的即时编译器中存在指令重排序的优化. 也就是说上面的第二步和第三步的顺序是不能保证的, 最终的执行顺序可能是 1-2-3 也可能是 1-3-2. 如果是后者, 则在 3 执行完毕、2 未执行之前, 被线程二抢占了, 这时 instance 已经是非 null 了(但却没有初始化), 所以线程二会直接返回 instance, 然后使用, 然后顺理成章地报错.(相信你不会喜欢这种复杂又隐含问题的方式,当然我们有更好的实现线程安全的单例模式的办法。下面这段代码就是声明枚举实例的通常做法。转载 2018-10-29 16:06:51 · 1039 阅读 · 7 评论 -
(设计模式)双重检查的缺陷以及更好的单例模式-java
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a_842297171/article/details/79316591 •这几天看并发编程的书,发现原先写的单例模式有点问题,当时认为双重检查是安全的,现在有新的了解...转载 2018-10-29 15:40:38 · 207 阅读 · 0 评论 -
Android设计模式(十七)-代理模式
原文地址 http://blog.csdn.net/qq_25806863/article/details/69525446代理模式也叫委托模式,是结构型设计模式。代理就是让别人帮你做事,比如帮你带饭,请律师打官司什么的。喵了个呜的小宇宙定义为其他对象提供一种代理以控制对这个对象的访问。使用场景...转载 2018-10-22 15:32:45 · 131 阅读 · 1 评论 -
MVC、MVP、MVVM,我到底该怎么选?
前言MVC、MVP、MVVM是我们工作和面试中都比较重要的一块,但很多时候我们却有点迷惑。比如看了好多篇文章都搞不懂MVC到底是个啥本来想写个MVP写着写着就变成MVC了,到底Databing和MVVM之间有啥见不得人的关系。本篇文章主要从发展的角度来介绍,如mvp,mvvm的出现都是为了解决前者的哪些问题。如果你有同样的疑问,本篇文章可能会给你带来一点收获。但是架构和设计模式相对来说不是那么容...转载 2018-10-17 11:02:56 · 216 阅读 · 0 评论 -
RxJava2+Retrofit2+RxLifecycle2使用MVP模式构建项目
版权声明:本文为博主 Ruffian-痞子 原创文章,转载请标明出处 https://blog.csdn.net/u014702653/article/details/75268919 前言眼下Retrofit+RxJava搭配的网络请求框架很是流行,本着学习的态...转载 2018-10-17 10:47:35 · 398 阅读 · 0 评论 -
【Android 进阶】MVP 实战演练之深入浅出
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/leaf_130/article/details/72579597 前言MVC简介Android 中的 MVCMVC MVP 对比MVPMVP 优点MVP缺点...转载 2018-10-16 19:52:37 · 180 阅读 · 0 评论 -
mvvm模式的recyclerview通用adapter
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/suwenlai/article/details/74456664 最近打算项目重构   打算使用mvvm模式   试着写了一个recyclerview在mvvm模式下的通用ada...转载 2018-10-12 17:47:33 · 1695 阅读 · 0 评论 -
Android架构设计---关于MVVM模式的探讨
版权声明:本文为LooperJing原创文章,转载请注明出处!一、MVP模式优缺点在说MVVM之前,简单回顾一下MVP分层,MVP总共分成三层:a 、View: 视图层,对应xml文件与Activity/Fragment;b 、Presenter: 逻辑控制层,同时持有View和Model对象;c 、Model: 实体层,负责获取实体数据...转载 2018-10-12 14:18:52 · 699 阅读 · 1 评论 -
AndroidStudioTip--用Builder模式替代构造方法
Builder模式并不少见,Effective Java 书中作者也有讲解,主要解决构造函数或方法的参数太多。在Android开发中,比如Android的AlertDialog 和许多三方库组件一般都提供一个Builder,然后方法链式让你set各个参数这里不是讲解B...转载 2018-08-31 19:23:21 · 1085 阅读 · 0 评论 -
DataBinding玩转MVVM开发实战
转载请标明出处:http://blog.csdn.net/donkor_/article/details/54598215 前言: 2015年谷歌I/O大会上介绍了一个数据绑定框架DataBinding。2016年,2017年毫无意外成了项目实战中主流框架。使用它我们可以轻松实现MVVM(模型-视图-视图模型)模式,来...转载 2018-07-15 22:43:45 · 202 阅读 · 1 评论 -
DataBinding玩转MVVM开发实战
转载请标明出处:http://blog.csdn.net/donkor_/article/details/54598215 前言: 2015年谷歌I/O大会上介绍了一个数据绑定框架DataBinding。2016年,2017年毫无意外成了项目实战中主流框架。使用它我们可以轻松实现MVVM(模型-视图-视图模型)模式,来...转载 2018-07-15 22:43:05 · 110 阅读 · 0 评论 -
Android组件化方案
版权声明:本文为博主原创文章,欢迎大家转载! 转载请标明出处: http://blog.csdn.net/guiying712/article/details/55213884 ,本文出自:【张华洋的博客】Android组件化项目地址:Android组件化项目AndroidModulePatternAn...转载 2018-07-01 16:16:58 · 121 阅读 · 0 评论 -
Android架构(一)MVP架构在Android中的实践
欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/54783106 本文出自:【余志强的博客】为什么要重视程序的架构设计对程序进行架构设计的原因,归根结底是为了提高生产力。通过设计是程序模块化,做到模块内部的高聚...转载 2018-04-19 17:39:15 · 315 阅读 · 0 评论 -
谈谈我理解的Android应用架构
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布前言android架构可能是论坛讨论最多的话题了,mvc mvp和mvvm不绝于耳,后面又有模块化和插件化。对此,关于哪种架构更好的争论从未停止。我的观点:脱离实际项目比较这些模式优劣毫无意义,各种模式都有优点和缺点,没有好坏之分。越高级的架构实现起来越复杂,需要更多的学习成本更...转载 2018-04-03 22:49:47 · 232 阅读 · 1 评论 -
你的MVP模式写法是否及格
一般我们做项目都会选择使用MVP进行解耦,关于MVP大家早都耳熟能详了,由于之前接手的项目中使用的MVP模式写法相当随意,同时也存在很多问题,所以下面我们就一步步去实现自己的MVP,顺便分析一下可能会导致出问题的一些写法。当然了,100个人就有一百种MVP写法,你开心就好….先预留一张gif图(录制gif的工具找不...转载 2018-04-01 23:13:12 · 150 阅读 · 0 评论 -
Android App的设计架构:MVC,MVP,MVVM与架构经验谈
和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于App的架构如何设计:我的App需要应用这些设计架构吗?MVC,MVP等架构讲的是什么?区别是什么?本文就来带你分析一下这几个架构的特性,优缺点,以及App架构设计中应该注意的问题。1.架构设计的目的通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。这样...转载 2018-04-01 15:29:22 · 193 阅读 · 0 评论 -
Android MVP 实例运用
Android MVP介绍 随着技术的发展,Activity(View) 做的事情越来越多,动辄几百上千行的代码使得 Activity 越来越臃肿。为了更好的划分视图(View)和模型(Model)之间的职责,让 View 只处理数据的展示和用户的交互,把数据的处理交由 Model 处理。 在MVP模式里通常包含4个要素: View:负责绘制U...转载 2018-04-01 15:21:57 · 1672 阅读 · 0 评论 -
Android架构(一)MVP全解析
前言关于架构的文章,博主很早就想写了,虽说最近比较流行MVVM,但是MVP以及MVC也没有过时之说,最主要还是要根据业务来选择合适的架构。当然现在写MVP的文章很多,也有很多好的文章,但是大多数看完后还是一头雾水,用最少的文字表述清楚是我一贯的风格(这里小小的装逼一下),所以还是自己总结比较靠谱。1.回顾MVC...转载 2018-03-29 23:10:57 · 256 阅读 · 0 评论 -
MVP模式在苏宁+App中的应用
1 前言苏宁+App是苏宁易购集团零售云研发中心分销研发中心主要产品之一,由于项目处于初期阶段,业务逻辑复杂,导致业务需求变动快,常常在开发甚至测试过程中出现界面或者后台接口调整的情况。 App客户端如何在外部需求不断变化的情况下,降低模块耦合,尽可能减少每次代码修改量,一方面减少开发...转载 2018-02-23 18:11:09 · 808 阅读 · 0 评论 -
练手项目 | 基于MVP+RxJava2+Retrofit2的资讯类App
本文作者作者:Horrarndoo链接:http://www.jianshu.com/p/6ef9e3804395本文由作者投稿发布。如果你刚好需要一些练手的项目,希望对你有用~很早之前就想写一个个人项目练练手,但是由于工作的关系,一直没有真正的开动(其实就是懒)。好吧,反正最近这几个星期稍微比较清闲,趁着这个机会,在空余时间撸了一个个人项目。1一之“一之”是一款资讯类App,主要实现的内容如下:转载 2018-01-29 10:19:20 · 777 阅读 · 0 评论 -
[设计模式]记一次开源库的重构历程
上周花了几天重写了我之前的IndexableStickyListView库,重构成RecyclerView版本:IndexableRecyclerView。关键字:Wrapper(包装)模式、Adapter(适配器)模式、Observer(观察者)模式;联系人Demo老版本的问题1、使用者的实体类需要extends库的IndexEntity。Java是单继承转载 2018-01-17 18:04:27 · 281 阅读 · 0 评论 -
从零开始的Android新项目11 - 组件化实践(1)
从零开始的Android新项目11 - 组件化实践(1)转载 2017-12-26 16:37:38 · 602 阅读 · 0 评论 -
从零开始的Android新项目3 - MVPVM in Action, 谁告诉你MVP和MVVM是互斥的
从零开始的Android新项目3 - MVPVM in Action, 谁告诉你MVP和MVVM是互斥的转载 2017-12-26 15:55:27 · 551 阅读 · 0 评论 -
设计模式 状态模式 以自动售货机为例
设计模式 状态模式转载 2017-12-15 16:37:50 · 311 阅读 · 0 评论 -
设计模式 模版方法模式 展现程序员的一天
设计模式 模版方法模式转载 2017-12-15 16:36:55 · 235 阅读 · 1 评论 -
设计模式 外观模式 一键电影模式
设计模式 外观模式转载 2017-12-15 16:35:46 · 290 阅读 · 0 评论 -
设计模式 适配器模式 以手机充电器为例
设计模式 适配器模式转载 2017-12-15 16:28:30 · 543 阅读 · 0 评论 -
设计模式 命令模式 之 管理智能家电
设计模式 命令模式转载 2017-12-15 16:00:24 · 324 阅读 · 1 评论