逻辑框架

GitHub标星4.6K+!手写一款基于MVVM模式开发框架,完美实现事件与数据源绑定!

删除回忆录丶 提交于 2020-04-08 14:03:26
前言 目前,Android流行的MVC、MVP模式的开发框架很多,然而一款基于MVVM模式开发框架却很少。MVVMHabit是以谷歌DataBinding+LiveData+ViewModel框架为基础,整合Okhttp+RxJava+Retrofit+Glide等流行模块,加上各种原生控件自定义的BindingAdapter,让事件与数据源完美绑定的一款容易上瘾的实用性MVVM快速开发框架。从此告别findViewById(),告别setText(),告别setOnClickListener()... 框架流程 框架特点 快速开发 只需要写项目的业务逻辑,不用再去关心网络请求、权限申请、View的生命周期等问题,撸起袖子就是干。 维护方便 MVVM开发模式,低耦合,逻辑分明。Model层负责将请求的数据交给ViewModel;ViewModel层负责将请求到的数据做业务逻辑处理,最后交给View层去展示,与View一一对应;View层只负责界面绘制刷新,不处理业务逻辑,非常适合分配独立模块开发。 流行框架 retrofit + okhttp + rxJava 负责网络请求; gson 负责解析json数据; glide 负责加载图片; rxlifecycle 负责管理view的生命周期;与网络请求共存亡; rxbinding 结合databinding扩展UI事件;

快速学习C#的思路

北城以北 提交于 2020-04-06 13:38:12
首先以Winform项目开发举例 1.完整的学习计划 2.对于学习内容分类 3.良好的学习习惯 4.项目实践 学习计划 1.基础篇 2.提高篇 3.应用篇 内容分类 1.语法 2.控件 3.业务逻辑 学习习惯 1.时间安排 2.进度安排 3.记录笔记 4.练习写代码 项目实践 1.实现页面展示 2.实现逻辑功能 3.封装实体类 4.优化代码 5.导入框架 以上是个人觉得学习快速的法则,有兴趣的可以到我QQ群里面听我的讲课。 谢谢大家。 来源: https://www.cnblogs.com/dm0502/archive/2020/04/06/12641614.html

MVC-MVP-MVVM框架模式分析

こ雲淡風輕ζ 提交于 2020-03-26 02:11:10
MVC(Model-View-Controller) MVC 架构模式图(经典版) 注:实际上,Model和View永远不能相互通信,只能通过Controller传递;上图只是MVC模式的经典图。 MVC一般流程: 用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View),单向通信。 各模块功能: 视图(View) :用户界面。(传送指令到 Controller) 控制器(Controller) :业务逻辑 (完成业务逻辑后,要求 Model 改变状态) 作用:负责将 View 中用户的动作传达给 Model,将 Model 的数据通过 View 展现出来 负责:显示界面、响应用户的操作、网络请求以及与 Model 交互 模型(Model) :数据保存、数据持久化。(将新的数据发送到 View,用户得到反馈) 缺点: 1.Controller逻辑复杂,难以维护。 2.Controller 和 View 紧耦合,无法测试。 MVP(Model-View-Presenter) 特点: 各部分之间的通信,都是双向的。 View 与 Model 不发生联系,都通过 Presenter 传递。 View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而

应对突发需求,如何借助Serverless快速上云?

浪子不回头ぞ 提交于 2020-03-25 12:00:31
3 月,跳不动了?>>> 当突发事件来临时,当绝佳idea闪现时,如何快速搞定开发和部署,使之变身为产品?快,则应万变!Serverless 是当今炙手可热的技术,被认为是云计算发展的未来方向,如何利用Serverless Framework 实现快速上云?本文是王俊杰老师在「云加社区沙龙online」的分享整理,详细阐述了Serverless上云的基本思路、框架原理、组件架构等,带大家揭开Serverless的神秘面纱。 应对突发需求,如何借助Serverless快速上云?_腾讯视频 ​ 一、Serverless上云基本概念 感谢云加社区组织这次“技术应变力”的线上专题活动,并邀请我来进行分享,我将从Serverless的角度来进行解读。Serverless是最近非常热门的词,中文翻译为“无服务器”。有人认为既然是无服务器,就意味着不再需要运维,完全是按需付费的模式...... 其实这些理解都比较片面,描述的都只是Serverless的某个方面。 从2014~2020年,这几年Serverless关键词的谷歌搜索指数与日攀升,现在已经成为了非常火爆的技术名词。其实早在2006年就有人提出Pay as you go的概念,需要多少就买多少,但直到2012年,Serverless首次被提出。2014~2016年,大型云厂商纷纷发布函数计算相关的产品支撑这样一个无服务器技术。

架构基本概念和架构本质

浪尽此生 提交于 2020-03-22 17:26:59
CSDN看到一篇介绍架构设计的博客,内容提纲挈领,内容丰富。依据原文整理,加上自己的理解和总结。 推荐给大家。点击原文可以查看出处。 原文链接: https://blog.csdn.net/hguisu/article/details/78258430 什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。 Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个? 想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构: 区分系统、模块、组件、框架和架构 S君: 区分系统、模块、组件、框架和架构 系统(system)和子系统:有 关联 的个体,根据某种 规则 运行,共同完成独特的 功能 。子系统:系统的组成部分。 模块(module)和组件(component):模块和组件都是系统的组成部分,只是从不同角度拆分系统而已。 从逻辑角度拆分得到的是模块,从物理角度拆分得到的是组件。 模块是为了实现职责分离, 组件是为了实现复用。 框架

架构基本概念和架构本质

可紊 提交于 2020-03-22 17:04:00
3 月,跳不动了?>>> CSDN看到一篇介绍架构设计的博客,内容提纲挈领,内容丰富。依据原文整理,加上自己的理解和总结。 推荐给大家。点击原文可以查看出处。 原文链接: https://blog.csdn.net/hguisu/article/details/78258430 什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。 Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个? 想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构: 区分系统、模块、组件、框架和架构 S君: 区分系统、模块、组件、框架和架构 系统(system)和子系统:有 关联 的个体,根据某种 规则 运行,共同完成独特的 功能 。子系统:系统的组成部分。 模块(module)和组件(component):模块和组件都是系统的组成部分,只是从不同角度拆分系统而已。 从逻辑角度拆分得到的是模块,从物理角度拆分得到的是组件。 模块是为了实现职责分离, 组件是为了实现复用。 框架

集合框架系列 Map(十二):TreeMap(1.8)

别来无恙 提交于 2020-03-18 18:28:37
目录 一 简介 二 概览 三 源码分析  3.1 查找  3.2 遍历  3.3 插入  3.4 删除 一、简介 TreeMap 最早出现在 JDK 1.2 中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于 红黑树 实现,可保证在 log(n) 时间复杂度内完成 containsKey、get、put 和 remove 操作,效率很高。另一方面,由于 TreeMap 基于红黑树实现,这为 TreeMap 保持键的有序性打下了基础。总的来说,TreeMap 的核心是红黑树,其很多方法也是对红黑树增删查基础操作的一个包装。所以只要弄懂了红黑树,TreeMap 就没什么秘密了。 二、概览 TreeMap 继承自 AbstractMap ,并实现了 NavigableMap 接口。NavigableMap 接口继承了 SortedMap 接口,SortedMap 最终继承自 Map 接口,同时 AbstractMap 类也实现了 Map 接口。以上就是 TreeMap 的继承体系,描述起来有点乱,不如看图了: 上图就是 TreeMap 的继承体系图,比较直观。这里来简单说一下继承体系中不常见的接口 NavigableMap 和 SortedMap ,这两个接口见名知意。先说 NavigableMap 接口,NavigableMap 接口声明了一些列具有导航功能的方法

Java单体应用 - 常用框架 - 02.Spring

感情迁移 提交于 2020-03-17 01:54:16
原文地址: http://www.work100.net/training/monolithic-frameworks-spring.html 更多教程: 光束云 - 免费课程 Spring 序号 文内章节 视频 1 概述 - 2 体系结构 - 3 特点 - 4 Spring与IoC - 5 第一个Spring应用程序 - 请参照如上 章节导航 进行阅读 1.概述 Spring 的主要作用就是为代码“ 解耦 ”,降低代码间的耦合度。 根据功能的不同,可以将一个系统中的代码分为 主业务逻辑 与 系统级业务逻辑 两类,它们各自具有鲜明的特点: 主业务代码间逻辑联系紧密,有具体的专业业务应用场景,复用性相对较低; 系统级业务相对功能独立,没有具体的专业业务应用场景,主要是为主业务提供系统级服务,如日志、安全、事务等,复用性强。 Spring 根据代码的功能特点,将降低耦合度的方式分为了两类: IoC 与 AOP 。 IoC 使得主业务在相互调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了。而是由 Spring 容器统一管理,自动“注入”。 而 AOP 使得系统级服务得到了最大复用,且不用再由程序员手工将系统级服务“混杂”到主业务逻辑中了,而是由 Spring 容器统一完成“织入”。 Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架

ASP.NET MVC框架

老子叫甜甜 提交于 2020-03-11 12:23:32
两个星期前, 我在博客里讨论了ASP.NET的一个新MVC(模型、视图,控制器)框架 ,我们将在不久的将来作为一个可选功能来支持。该框架提供了一个结构化的模型,来加强应用中的清晰关注分离,方便你单元测试代码和支持TDD流程。它还提供了对你在应用中发布的URL的更多的控制,也可以对从中输出的HTML提供更多的控制。 之后,我回答了来自迫切想了解更多详情的很多人的很多问题。鉴于如此高的兴趣,我觉得,写几个贴子更详细地描述如何使用这个框架,也许更有意义些。这是我将在以后几个星期里要撰写的相关贴子的第一个。 一个简单的电子商务店面应用 我将使用一个简单的电子商务商店应用来示范ASP.NET MVC框架的工作原理。在今天的贴子里,我将实现一个产品列单,以及相关的浏览应用场景。 具体来说,我们将建造一个网上商店,允许用户在访问该网站上的 /Products/Categories 网址时 浏览产品分类列表: 当用户点击上面网页上的产品分类链接时,他们将转到一个产品分类列表URL /Products/List/CategoryName 上,该页面列出了指定分类中的还在销售的产品: 当用户点击个别的产品时,他们将转到产品细节URL /Products/Detail/ProductID 上,这个网页将显示用户选定的产品的更多细节: 我们将使用新的ASP.NET MVC框架来实现上述的所有功能

ET框架学习-ECS组件式编程的基本思想之于UNITY

北战南征 提交于 2020-03-10 22:07:51
参加实习一个月了 公司新项目准备使用ET框架进行开发 在走通et的流程之前 我们必须了解一个概念:ECS组件式编程 这个概念有区别于我们我们常见的unity开发思路(虽然unity本身也是采用了给go添加component) ,在unity开发中,常见的思路是 entity-manager,就是说把业务抽象成 实体 - 管理器的模式 ,实体就是抽象出来的 比如说主角啊 怪物等等类(实例),管理器就是那些protomanager,scenemanager,uimanager之类的封装一些相对抽象的逻辑的类(实例)。对象和管理器各自遵循oop的思想设计 ,玩家类继承角色类,实现不同接口 ;角色类可以被npc类继承,也可以被玩家类继承;每个阶段的类都封装了这个阶段该(继承)有的属性和操作,manager和enity的交互通过相应事件系统(有可能是某些manager本身)从而组成一个相对完整的生态系统。 这样做的话,数据和逻辑的耦合程度比较高,于是人们尝试把mvc(puremvc,strangeioc)框架加入其中,将实体的数据和逻辑进行解耦,实体和管理器被分为view和controller和model。然而,游戏本来就是一个相当复杂的产品,逻辑和逻辑,逻辑和数据有的时候强行解耦的话并不能使得开发变得简单,有时候反而会加大工作量(比如说开发一个相对简单的项目)