微软官方翻新机618认证翻新机的活动都有哪些系列的机型参与,我想多参考一下,这回的活动力度挺大,有想法.

手机签到经验翻倍!快来扫一扫!
别再被骗了哦,看完对比你就知道你的iPhone是不是翻新机啦
206621浏览 / 102回复
& & 自从 5s上市之后,网上好多关于iPhone的翻新机的话题就开始不绝于耳,到底什么是翻新机?翻新机又怎么辨别呢?小红豆总结了几点给大家,以免大家以后会上当受骗,花大钱买个翻新机,白花钱又伤心哇~~~1、信息查询序列号查询工具查询& & 大家都知道苹果产品都要有一个序列号哒,所以嘞,一般对于iPhone来说都是设置—通用—关于本机中的序列号位置显示的那串11位字母数字组成的编码。可以在专业的苹果序列号查询工具中输入序列号进行查询。——————————————————————————————————————————————————————详细的如图所示:& & 如果你在购买苹果设备前进行序列号查询的话,应该能够鉴别大多数的翻新机,因为如果是翻新机,序列号对应的信息与奸商实际描述的信息会有出入,如果是更换了的翻新机,一定是被维修过的机器,而被维修的机器的序列号在苹果官网中是被注销的,也就是在查询时会出现“很抱歉,这是已更换产品的序列号。”的信息。如果是正常的翻新机当做新机卖时,这里查询的保修时间,购买地等信息一定可以帮你鉴别机器的使用年限,是否是国行港行等。另外“最近一次激活时间”这个日期完全可以用来鉴别是不是二器(如果是刚买的新机器,这个激活时间是没有的。如果有,那有可能就是翻新机),因为这些数据都是苹果官网数据库的记录。——————————————————————————————————————————————————————详细的如图所示:2、产品细节辨别& & 很多网友可能没有那个时间跟精力去查询序列号等等产品内部信息,那就给大家示范几个小妙招,从细节上来辨别一下你的爱机是否是翻新机吧~~~&原装数据线& &可以看出来,原装的数据线插头质地做工都非常精致。& & 翻新机或者劣质的数据线插头做工明显差很多,所以这个是很好辨别的哦~~耳机& &耳机在做工和差异上也是很大的,明显可以看出,原装的可以看出最右边的耳机头钢丝网较密偏蓝是原装,左侧两个位假耳机。3、细节做工是否有磨损。& & 苹果的产品一向是以细节著称,所以是不是翻新机,从边边角角的细节上,一眼便可以看出,不论是背部稍显华丽的金属质地,还是耳机插孔圆润几乎没有瑕疵的打磨,还是侧键看不出任何人为加工痕迹的做工,都能体现苹果对细节上的完美要求。有点像做广告哈,哈哈,不过翻新机就不一样啦,大家可以去比较一下,翻新机做的再好,在这些细节点上还是能让人一眼就看出问题所在啦~~~——————————————————————————————————————————————————————详细的如图所示:
好贴呀,还有后续没?果断加精的节奏呀
其实官翻的机器挺多的
还有其他的细节吗?我觉得这真要好好来看下。
jasonalejandro 发表于
还有其他的细节吗?我觉得这真要好好来看下。
有更好的鉴别方法我会陆陆续续更新上去哒
这个是一部分
我正在整理其他的
耐心等下哦
对 第1楼 流水三千 说:=========================有哇有哇,有新的辨别方法会及时更新哒
布鲁诺马里奥 发表于
对 第1楼 流水三千 说:=========================有哇有哇,有新的辨别方法会及...
看好楼主哦
布鲁诺马里奥 发表于
对 第1楼 流水三千 说:=========================有哇有哇,有新的辨别方法会及...
看好楼主哦
布鲁诺马里奥 发表于
对 第1楼 流水三千 说:=========================有哇有哇,有新的辨别方法会及...
看好楼主哦
布鲁诺马里奥 发表于
对 第1楼 流水三千 说:=========================有哇有哇,有新的辨别方法会及...
看好楼主哦
布鲁诺马里奥 发表于
对 第1楼 流水三千 说:=========================有哇有哇,有新的辨别方法会及...
看好楼主哦
看好楼主哦
其实也就那样吧
大深圳不是有小料板么 IP的900一个 可激活可查询
布鲁诺马里奥 发表于
有更好的鉴别方法我会陆陆续续更新上去哒
这个是一部分
我正在整理其他的
耐心等下哦
期待精彩分享
wzyinzol 发表于
其实官翻的机器挺多的
我是富士康做这个的!官翻的跟全新原装其实是没有区别的,在生产的时候一部手机可能是品管检验一次性直接出厂,也有可能不是一次就通过检验直接出厂的,品管检测没通过的,就需要拆机从新组装,这叫重工!有的系统功能不良没通过就拆机从新组装再测试系统,再没有通过就判断为硬件零件有问题就会跟换零件!有可能重工十几次这不手机才能出厂!所以你买到的iphone就有可能是一部在厂里组装拆机组装测试倒腾十几遍的那一部!到你手里也还是全新原装,但是一切问题是没有的!你也不知道!再说官翻机,所谓官翻机再我们这里叫返厂机,或者客服维修机!也就是在保修期内的手机进入富士康进行维修,人为搞坏的不会进入到富士康来维修的,都是给你买手机的地方给你修!在保修期内,大的硬件问题一般直接把你手机拆了回收(作电子垃圾处理)直接给你部新手机,把你手机资料全部备份到新手机里,序列号也跟之前的那部一样,因为刷序列号只有富士康原产可以刷的,你想手机生产的时候就在富士康生产的,厂里就有这个权限,外面小作坊你再牛逼你也刷不了!修好再给经销商,你去那里拿自己的手机就可以了!其实拆机回收的电池是直接用撬棒撬下来的,都是变形的根本就不能再用了,反正是电子垃圾要处理掉的,一天一个员工他玛撬几千个电池,也没谁会用上面的拉胶拆电池,那样要累死的!呵呵!所以说不会有旧电池给你装新手机里去的!总的说软件问题刷机,硬件问题直接换机!就是不会坑你就是的,只有里面的某些零件会保留,比如什么小铁片,喇叭模组啊,还有未刮花的显示屏(除了主板,iphone里面就显示屏这个最贵了,都会保留的)等但是都要通过测试才行,没pass照样作电子垃圾处理!再一个就是螺丝直接拆了会回收到做螺丝的五金厂回炉!别纠结官翻机了,其实跟新的没有任何区别的!尼玛外面的翻新机都是拿仿的物料来组装的!
求序列号查询软件名称
支持键盘翻页 ( 左右 )&
可能感兴趣的板块:
用户名/注册邮箱/注册手机号
其他第三方号登录微软618活动是什么?如果想买笔记本的话,选哪款最好_百度知道
微软618活动是什么?如果想买笔记本的话,选哪款最好
我有更好的答案
推荐你全新Surface pro的,这款机型很轻薄,我平时出差携带非常方便。然后配置方面是酷睿第七代处理器、长达13.5小时的续航能力、高达800万像素带1080p高清视频的自动对焦后置摄像头,而且全新Surface pro最大还可以倾斜165度。
1、首先,不同品牌所生产的,不同系列的产品都有其不同的特点和优点,产品的设计、售后保修服务等等很多方面都有比较明显的区别;2、建议根据实际的使用需要,以及使用环境、实际预算,加上通过实体店或者网店的产品对比,选择适合个人的笔记本电脑;3、建议咨询当地实体经销商,或其他各大电商网站中对应机型的说明介绍及其具体售价,结合自身需求来综合判断和选择。至于哪一个产品更好,并没有统一的标准。
本回答被网友采纳
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。想买一台翻新机,听说微软官方商城618优惠有认证翻新优惠?都有哪些机型?_百度知道
想买一台翻新机,听说微软官方商城618优惠有认证翻新优惠?都有哪些机型?
我有更好的答案
噢噢,买翻新机还是官方渠道比较放心呢~这次微软官方商城618优惠活动主要是有Surface Pro4和Surface Book两款认证翻新机卖哦,经过微软官方商城严苛的翻新流程之后,这两款翻新机的质量还是非常好的,硬件、软件都有所保证,而且跟新设备一样享有两年的有限硬件质保呢,赶快下手就是了,绝对划算!
京东有翻新机卖,价格便宜!质量可以
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Android MVP 详解(上) - 简书
Android MVP 详解(上)
作者:时间:日“”已经发布,欢迎大家提建议。
MVP 在 Android 上的使用其实已经有挺长一段时间了,长到似乎有点“过时”了(目前风头正劲的是MVVM),那为什么现在还要讲 MVP。今天我想要讨论它的主要原因有如下几点:
1. MVP 并未过时,值得我们研究
2. 目前关于 MVP 的资料都不算太详尽
3. 由于能力和时间有限,本人拖到最近才下定决心写
说明:本文只是抛砖引玉,疏漏之处敬请谅解。
MVP 详解思维导图
目录前言一、什么是MVP二、MVX解析三、MVX与三层架构四、Android上MVP的几种实现五、最佳实践六、进阶与不足前言
2014年年底偶然得知在Android开发中出现了MVP这种模式,当时觉得这东西挺好,正好赶上公司要做一个新的小项目,于是尝试了一下。仿照网上的Demo分出View、Model、Presenter层,抽取View接口,看起来像那么回事的用MVP完成了整个项目。因为项目简单,期间也没有遇到什么坑,但是总觉得还有那些地方不对。当时网上一些关于Android MVP的介绍都有点浅尝辄止,一个登录或者根据地区查询天气等的小Demo,没有实际在项目中应用的示例,所以在用MVP做完一个小项目之后还是不敢在主项目中轻易尝试。首先,主项目比较混乱,改动起来工作量很大,而工期经常较紧,时间不允许;其次,知道自身对MVP理解还不够,怕掉坑里去;最后,也是最重要的一点,当时的项目不是按功能模块划分的包结构,如果改为MVP那是真的就回不到过去了。好了,废话不多说,今天主要是想分享一下,本人对MVP的浅见,以及如何使用MVP模式搭建一个项目框架。纯属一家之言,不足之处,请见谅。一、什么是 MVP1.1. MVP 的定义MVP,全称 Model-View-Presenter要说MVP那就不得不说一说它的前辈——MVC。MVC(Model-View-Controller,模型-视图-控制器)模式是80年代Smalltalk-80出现的一种软件设计模式,后来得到了广泛的应用,其主要目的在于促进应用中模型,视图,控制器间的关注的清晰分离。MVP(Model-View-Presenter,模型-视图-表示器)模式则是由IBM开发出来的一个针对C++和Java的编程模型,大概出现于2000年,是MVC模式的一个变种,主要用来隔离UI、UI逻辑和业务逻辑、数据。也就是说,MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。说明:按照View和Presenter之间的交互方式以及View本身的职责范围,Martin Folwer将MVP可分为PV(Passive View)和SoC(Supervising Controller)两种模式。Passive View顾名思义,PV(Passive View)是一个被动的View,针对包含其中的UI元素(比如控件)的操作不是由View自身来操作,而交给Presenter来操控。Supervising Controller在SoC(Supervising Controller)模式下,为了降低Presenter的复杂度,将诸如数据绑定和格式化这样简单的UI处理逻辑逻辑转移到View中,这些处理逻辑会体现在View实现的接口中。1.2. 发展历程任何一种思想的产生都有其特定的背景,在软件开发中也是如此。在软件复杂度增长,需求不断变更的客观条件下,为了更好的解决这些问题,出现了各种软件架构思想、编程思想以及设计模式。(因为人的能力并没有“跟上”机器,所以才会出现各种模式、方法、工具等等来补足人的不足,以最大地透支机器性能。--Indream Luo)相信做过客户端(PC、Android、iOS等)或者前端开发的童鞋都听过MVC、MVP、MVVM这些名词(就算不了解也大致知道有这个东西吧),这些都是为了解决拥有图像界面的程序开发复杂性而产生的模式。这里说的是模式,当然有各种各样的框架方便开发者在项目中应用这种模式,这不是本文重点。有前辈(Indream Luo)说过,架构是对客观不足的妥协,规范是对主观不足的妥协。对此我深表赞同,先不管这些,我们来看看GUI是怎么和MVX扯上关系的。先搞清楚一个顺序,是GUI应用程序的出现导致了MVC的产生。GUI应用程序提供给用户可视化的操作界面,这个界面提供给用户数据和信息。在PC上用户与界面的交互主要依赖(键盘,鼠标等。这些操作会执行一些应用逻辑,应用逻辑(application logic)可能会触发一定的业务逻辑(business logic)使应用程序数据的发生变更,数据的变更自然需要用户界面的同步变更以提供最准确的信息。在开发这类应用程序时,为更好的管理应用程序的复杂性,基于职责分离(Speration of Duties)的思想都会对应用程序进行分层。在开发GUI应用程序的时候,会把管理用户界面的层次称为View,应用程序的数据为Model(注意这里的Model指的是Domain Model,这个应用程序对需要解决的问题的数据抽象,不包含应用的状态,可以简单理解为对象)。Model提供数据操作的接口,执行相应的业务逻辑。有了View和Model的分层,那么问题就来了:View如何同步Model的变更,View和Model之间如何粘合在一起。(所谓的MVX中的X都可以归纳为对这个问题不同的处理方式)(引自:戴嘉华)。MVC 的产生早在上个世纪70年代,美国的施乐公司(Xerox)的工程师研发了Smalltalk编程语言,并且开始用它编写图形界面的应用程序。而在Smalltalk-80这个版本的时候,一位叫Trygve Reenskaug的工程师设计了MVC图形应用程序的架构模式,极大地降低了图形应用程序的管理难度。而在四人帮(GoF)的设计模式当中并没有把MVC当做是设计模式,而仅仅是把它看成解决问题的一些类的集合。Smalltalk-80 MVC和GoF描述的MVC是最经典的MVC模式。看到这服务端的童鞋有话要说:我们也用MVC,你看Structs、SpringMVC这些都是经典的MVC框架。那服务端的MVC和GUI开发中的MVC有何不同之处了,请看下面的分析。MVC Model 2的出现在Web服务端开发的时候也会接触到MVC模式,而这种MVC模式不能严格称为MVC模式。经典的MVC模式只是解决客户端图形界面应用程序的问题,而对服务端无效。服务端的MVC模式又自己特定的名字:MVC Model 2,或者叫JSP Model 2,或者直接就是Model 2 。好吧,说了等于没说,总之一句话,我们今天所说的MVX都有一个前提,那就是得有GUI,得是来解决GUI应用程序开发中遇到的问题的。所以,我们只要关心最经典的MVC就可以了,想了解更多的请自行Google。MVP 的产生MVP模式是MVC模式的改良。在上个世纪90年代,IBM旗下的子公司Taligent在用C/C++开发一个叫CommonPoint的图形界面应用系统的时候提出来的。MVVM 的产生MVVM模式最早是微软公司提出,并且了大量使用在.NET的WPF和Sliverlight中。2005年微软工程师John Gossman在自己的博客上首次公布了MVVM模式。1.3. 为什么需要 MVP(以下内容参考自:MVP在Android平台上的应用,原文作者,译者)理由1:尽量简单如果你还有读过这篇文章,请阅读它:(Keep It Stupid Simple)大部分的安卓应用只使用View-Model结构程序员现在更多的是和复杂的View打交道而不是解决业务逻辑。当你在应用中只使用Model-View时,到最后,你会发现“所有的事物都被连接到一起”。
只使用 Model-View
如果这张图看上去还不是很复杂,那么请你想象一下以下情况:每一个View在任意一个时刻都有可能出现或者消失。不要忘记View的保存和恢复,在临时的view上挂载一个后台任务。“所有的事物都被连接到一起”的替代品是一个万能对象(god object)。
god object
god object是十分复杂的,他的每一个部分都不能重复利用,无法轻易的测试、或者调试和重构。With MVP使用MVP
复杂的任务被分成细小的任务,并且很容易解决。越小的东西,bug越少,越容易debug,更好测试。在MVP模式下的View层将会变得简单,所以即便是他请求数据的时候也不需要回调函数。View逻辑变成十分直接。理由2:后台任务当你编写一个Actviity、Fragment、自定义View的时候,你会把所有的和后台任务相关的方法写在一个静态类或者外部类中。这样,你的Task不再和Activity联系在一起,这既不会导致内存泄露,也不依赖于Activity的重建。这里有若干种方法处理后台任务,但是它们的可靠性都不及MVP。1.4. 为什么 MVP 是可行的?
(以下内容参考自:MVP在Android平台上的应用,原文作者,译者)这里有一张表格,用于展示在configuration改变、Activity 重启、Out-Of-Memory时,不同的应用部分会发生什么?
不同应用部分对不同场景的响应
情景 1: 当用户切换屏幕、更改语言设置或者链接外部的模拟器时,往往意味着设置改变。 相关更多请阅读。情景 2:Activity的重启发生在当用户在开发者选项中选中了“Don’t keep activities”(“中文下为 不保留活动”)的复选框,然后另一个Activity在最顶上的时候。情景 3: 进程的重启发生在应用运行在后台,但是这个时候内存不够的情况下。总结现在你可以发现,一个调用了setRetainInstance(true)的Fragment也不奏效,我们还是需要保存/恢复fragment的状态,所以为简化问题,我们暂不考虑上述情况的Fragment。
现在,看上去更舒服了,我们只需要写两段代码为了恢复应用:· 保存/恢复 for Activity, View, Fragment, DialogF· 重启后台请求由于进程重启第一个部分,用Android的API可以实现。第二个部分,就是Presenter的作用了。Presenter将会记住有哪些请求需要执行,当进程在执行过程中重启时,Presenter将会出现执行它们。1.5. MVP 的优缺点任何事务都存在两面性,MVP当然也不列外,我们来看看MVP的优缺点。优点:1. 降低耦合度,实现了Model和View真正的完全分离,可以修改View而不影响Modle2. 模块职责划分明显,层次清晰(下面会介绍Bob大叔的Clean Architecture)3. 隐藏数据4. Presenter可以复用,一个Presenter可以用于多个View,而不需要更改Presenter的逻辑(当然是在View的改动不影响业务逻辑的前提下)5. 利于测试驱动开发。以前的Android开发是难以进行单元测试的(虽然很多Android开发者都没有写过测试用例,但是随着项目变得越来越复杂,没有测试是很难保证软件质量的;而且近几年来Android上的测试框架已经有了长足的发展——开始写测试用例吧),在使用MVP的项目中Presenter对View是通过接口进行,在对Presenter进行不依赖UI环境的单元测试的时候。可以通过Mock一个View对象,这个对象只需要实现了View的接口即可。然后依赖注入到Presenter中,单元测试的时候就可以完整的测试Presenter应用逻辑的正确性。6. View可以进行组件化。在MVP当中,View不依赖Model。这样就可以让View从特定的业务场景中脱离出来,可以说View可以做到对业务完全无知。它只需要提供一系列接口提供给上层操作。这样就可以做到高度可复用的View组件。7. 代码灵活性缺点:1. Presenter中除了应用逻辑以外,还有大量的View-&Model,Model-&View的手动同步逻辑,造成Presenter比较笨重,维护起来会比较困难。2. 由于对视图的渲染放在了Presenter中,所以视图和Presenter的交互会过于频繁。3. 如果Presenter过多地渲染了视图,往往会使得它与特定的视图的联系过于紧密。一旦视图需要变更,那么Presenter也需要变更了。4. 额外的代码复杂度及学习成本。1.6. 小结在MVP模式里通常包含4个要素:(1) View :负责绘制UI元素、与用户进行交互(在Android中体现为Activity);(2) View interface :需要View实现的接口,View通过View interface与Presenter进行交互,降低耦合,方便进行单元测试;(3) Model :负责存储、检索、操纵数据(有时也实现一个Model interface用来降低耦合);(4) Presenter :作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。?
Microsoft对MVC和MVP的理解
二、MVX 剖析2.1. M(Model)模型:表示数据模型和业务逻辑(business logic)。模型并不总是DataSet,DataTable之类的东西,它代表着一类组件(components)或类(class),这些组件或类可以向外部提供数据,同时也能从外部获取数据并将这些数据存储在某个地方。简单的理解,可以把模型想象成“外观类(facade class)”。译注:这里的外观是指“外观模式”中所说的外观。外观的一般作用是为一个复杂的子系统提供高层次的简单易用的访问接口,可以参看下面的图来理解它的原理:model层主要负责:· 从网络,数据库,文件,传感器,第三方等数据源读写数据。· 对外部的数据类型进行解析转换为APP内部数据交由上层处理。· 对数据的临时存储,管理,协调上层数据请求。2.2 V(View)视图:将数据呈现给用户。一般的视图都只是包含用户界面(UI),而不包含界面逻辑。比如,Asp.net中包含控件的页面(page)就是一个视图。视图可以从模型中读取数据,但是不能修改或更新模型。view 层主要负责:· 提供UI交互· 在presenter的控制下修改UI。· 将业务事件交由presenter处理。注意: View层不存储数据,不与Model层交互。在Android中View层一般是Activity、Fragment、View(控件)、ViewGroup(布局等)等。2.3. X(C-Controller、P-Presenter、VM-ViewModel)控制器:View捕获到用户交互操作后会直接转发给Controller,后者完成相应的UI逻辑。如果需要涉及业务功能的调用,Controller会直接调用Model。在完成UI处理之后,Controller会根据需要控制原View或者创建新的View对用户交互操作予以响应。层现器:作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。Presenter包含了根据用户在视图中的行为去更新模型的逻辑。视图仅仅只是将用户的行为告知Presenter,而Presenter负责从视图中取得数据然后发送给模型。视图模型:binder 所在之处,是 View 的抽象,对外暴露出公共属性和命令,它是View的抽象,负责View与Model之间信息转换,将View的Command传送到Model。ViewModel的含义就是 "Model of View",视图的模型。它的含义包含了领域模型(Domain Model)和视图的状态(State)。可以简单把ViewModel理解为页面上所显示内容的数据抽象,和Domain Model不一样,ViewModel更适合用来描述View。2.4. 小结MVC模式、MVP模式和MVVM模式都作为用来分离UI层与业务层的一种开发模式。这些模式之间的差异可以归纳为对这个问题处理的方式的不同。三、MVX 与三层架构相信不少童鞋和我有过同样的疑惑:MVX分为了M-V-X三层,那这到底和软件的三层架构有何关系呢?我们带着问题继续往下阅读。3.1. 什么是三层架构三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目。通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。(参考自:百度百科)常见的架构有:· 分层架构(如:三层架构)· 事件驱动架构· 微内核架构· 微服务架构 · 基于空间的架构 推荐阅读《软件架构模式》3.2. 三层架构和 MVX 的关系首先,我想说三层架构(分层架构)和 MVX 没有什么关系,它们不在同一个层次上(三层是一种架构思想,更多的是和事件驱动架构、微内核架构等放在一起讨论,而我更喜欢把 MVX 做为模式来对待)。三层是从整个应用程序架构的角度来分为DAL(数据访问层)、BLL(业务逻辑层)、WEB层(界面层)各司其职,意在职责分离;三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑;并且三层只是多层架构中的一种情况,完全可以根据需要分为多层。MVC 主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。MVC把纯净的界面展示逻辑(用户界面)独立到一些文件中(Views),把一些和用户交互的程序逻辑(Controller)单独放在一些文件中,在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象,这些对象,统称为Models。而在其后出现的 MVP 以及 MVVM 与 MVC 的作用类似,MVX 主要的区别在于如何解决 M 与 V 之间的连接与更新。总之一句话,MVX 是一种模式,Spring MVC 以及 ASP.NET MVC 等是一个基于MVC模式的开发框架,三层架构是一种架构。其次,它们都有一个表现层,但是这两者的展现层并不是一样的。可以这样看待 MVX 与三层架构中的表现层的关系,MVX 中的 V 和 X 都属于三层架构中的表现层,可以看下图的示意。最后,虽然都有提到 Model,但是在 MVX 中没有把业务的逻辑访问看成两个层,这是采用三层架构或 MVX 搭建程序最主要的区别。在三层架构中Model 的概念与 MVX 中 Model 的概念是不一样的,“三层”中典型的Model 层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。也就是说,MVX 与三层架构说的根本不是一回事。在所谓的“三层”中,它要求你将BLL层独立出来,它只是告诉你表示层和业务逻辑层之间的静态关系。而 MVX 则告诉你在这个具体的地方如何处理其动态驱动流程,尽管 MVC 仍然粗糙(甚至 MVP、MVVM也是粗糙的),但是已经比所谓三层更细致一些了(三层是架构好吗...)。
MVP和三层架构示意图
四、Android 上 MVP 的几种实现絮絮叨叨说了一大堆,终于干货要来了。正所谓:Talk is cheap,show me the code.下面会给出示例代码,请继续阅读。在 Android 开发中讨论 MVP、MVVM 最终都离不了
的 。(请自行阅读,相信阅读原文会有更大的收获)下面,我会尝试一一细数 Android 上常见的 MVP 实现方式(说明:并没有什么排序规则,只谈大家的实现思路,展示的顺序只是为了方便大家的理解和阅读)。4.1. 存取用户信息的 MVP 小 Demo
这其实是我最先接触 MVP 时看到的示例,代码很少,但是把 MVP 的分层展示的挺清晰。原文:源码:
登录Demo 界面
项目结构示例
4.2. 天气查询的 MVP 小 Demo现在的 Andorid 开发怎么能够离开网络,来一个有网络的示例。该天气查询 Demo,是通过访问 Web 服务获取地区的天气信息(返回为JSON),然后在 Activity 中用 TextView 展示出来。原文:源码:
项目效果预览
4.3. 使用 Activity/Fragment 作为 Presenter 的探索上面的示例 View 都是 Activity 来承担的,Presenter 是一个普通的类,前面讨论过 Android 在不同场景下会进入不同的生命周期,这将可能导致 Presenter 也随着其生命周期需要做出响应。从这个角度考虑,有不少开发者提出了 MVP 实现的其他思路,接下来我们要探讨的就是使用 Activity/Fragment 作为 Presenter 的一些实现方案。4.3.1 一种实现MVP模式的新思路
其中有使用 Activity 和 Fragment 作为 Presenters 和使用 Adapter作为 Presenter的探讨,思路挺有意思,可以去看看。原文:译文:源码:4.3.2. TheMVP 介绍TheMVP使用Activity作为Presenter层来处理代码逻辑,通过让Activity包含一个ViewDelegate对象来间接操作View层对外提供的方法,从而做到完全解耦视图层。原文:源码:
TheMVP原理示意
TheMVP项目结构
4.3.3 MVPro 介绍MVPro的实现很简单,思想和上面两篇文章(和)介绍的一样,都是将Activity和Fragment作为Presenter。Presenter即我们的Activity或者Fragment, View呢?说白了就是我们从Activity和Fragment中提取出来的和View操作相关的代码。原文:源码:
MVPro原理示意
4.4. Nucleus 框架该框架还是值得一看的,作者 Konstantin Mikheev 对于 MVP 的理解挺有见地。Nucleus is a simple Android library, which utilizes the Model-View-Presenter pattern to properly connect background tasks with visual parts of an application.原文:译文:源码:4.5. Beam 框架该框架的作者对 MVP 的理解的特点如下:
Activity会在很多情况下被系统重启:
当用户旋转屏幕
在后台时内存不足
改变语言设置
attache 一个外部显示器等。
正确的方式应该是:
Presenter与Activity的绑定关系应由静态类管理。而不是由Activity管理。当Activity意外重启时Presenter不应重启。Activity重启时,Presenter与Activity重新绑定,根据数据恢复Activity状态。
而当Activity真正销毁时。对应Presenter才应该跟随销毁。
这也是对 Presenter 管理的一个思路,可以参考。原文:源码:
4.6. Mosby 框架我给这篇关于Android库的博客起的名字灵感来源于《老爸老妈浪漫史》中的建筑设计师Ted Mosby。这个Mosby库可以帮助大家在Android上通过Model-View-Presenter模式做出一个完善稳健、可重复使用的软件,还可以借助ViewState轻松实现屏幕翻转。这又是一种解决Activity/Fragment生命周期在屏幕翻转等场景下对Presenter的处理的思路。原文:译文:源码:
获得ViewState支持的Activity的生命周期图解
获得ViewState支持的Fragment的生命周期图解
4.7. Loader 的使用
就像刚才说的一样,关键问题就是在哪里存储Presenter以及什么时候销毁它们。而我们刚刚就看到了Loader的强大之处:由安卓系统框架提供,有单独生命周期,会被自动回收且不必在后台运行。
所以思考一下需求以及Loader的功能,我们可以让Loader作为Presenter的提供者,而不需要担心手机状态改变。
将同步的Loader作为存放Presenter的缓存。
这里的重点就在于同步使用Loader时,我们可以知道在生命周期的哪个阶段Presenter被创建了并且可以工作了。甚至是在Activity/Fragment可见之前。
使用Loader,思路很有新意,关键确实解决了问题,更关键的是使用的是 Android Framework 提供的功能。原文:译文:源码:
MVP diagram
4.8. Google 官方推荐大 Boss 总是最后出场,对于 Android 上 MVP 的实现,Google 给也出了一些建议和实例,赶紧看看去吧。原文:源码:
Google MVP 示例
4.9. MVP 实现的完整开源项目4.9.1. PhilmChrisBannes的开源项目,其整体架构是一套MVP的实现。这里有一篇分析该项目的文章,可以直接去读源码,也可以先看看
是怎么分析的。Philm 分析:源码:
Philm 的总体设计
Philm 的类关系图
Philm 的基本调用流程图
4.9.2. 使用 Beam 开发的 APP 搜图神器 空钩钓鱼Beam 前面已有介绍,感兴趣的童鞋可以看看上面两个项目。4.9.3. 干货集中营客户端有不少的开源实现都是 MVP 模式的(下面的 App 是官网上列出来的,具体是否都采用了 MVP 本人没有一一查阅)。4.10. 小结上述众多解决方案都集中在 Presenter 实现的问题上,这主要是由于 Activity、Fragment 的复杂性导致的,它们有众多生命周期,它们无所不能,是否把它们仅仅视作 View 成了争论的焦点。个人认为从编码的难易程度和编码的习惯来说,我赞成把 Activity、Fragment 作为 View 即可,我们可以考虑其他方式来保证Presenter的生命周期和防止 Presenter 引起内存泄漏。其中使用 Loader 的方案就非常优雅,下面在本人的示例项目中也会采用这种方式。
关于 5 和 6 将在下篇中阐述,示例代码也会在下篇中给出。正所谓:Talk is cheap show me the code.
参考:使用mvp
男子千年志,吾生未有涯。心随朗月高,志与秋霜洁。
转载至:http://www.jianshu.com/p/9a “Android MVP 详解(下)”已经发布,欢迎大家提建议。 MVP 在 Android 上的使用其实已经有挺长一段时间了,长到似乎有点“过时”了(目前风头正劲的是MVVM),那为什么现...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
Android App的设计架构:MVC,MVP,MVVM与架构经验谈1. 架构设计的目的1.1 通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。1.2 这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点,提高程序开发的效率,并且更容易进行后续的测...
相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候想用MVP的,代码写着写着就变成了MVC,久而久之就对它们三个的选择产生了...
提升他人对你好感的步骤 审视你的自尊心,是否是以自信 轻松真诚的态度面对他人。 掌握客户的信息 展现自己的能力快乐地工作。 提高成交能力的情商 把客户当合作伙伴而不单纯的销售关系 明确见客户的目的-不要过渡关注会面结果不管客户是同意还是拒绝都变现的淡定自若,面对客户的反驳正...
月初,全国个别地区率先为企业颁发了电子营业执照,“便携式缩小版”电子营业执照是将工商营业执照登记信息简化录入网络平台,形成名片大小、便携式的商事主体身份证。“便携式缩小版”电子营业执照可应用于线上和线下、政务和商务多个领域。作为电子政务、电子商务环境下的身份认证工具,企业可...
鱼胶中丰富的胶原蛋白是它受到广大女性喜爱的主要原因,同时它还含有非常丰富的蛋白质、维生素,且这些营养素都非常容易被人体吸收,对于病后体虚的朋友来说更是补身体的绝佳选择,那么鱼胶可以怎么吃呢?老宗医养生在线推荐鱼胶炖排骨。 鱼胶炖排骨 鱼胶炖排骨的做法养生膳食www_laoz...
find . -name &*.temp& -print0 |xargs -0 -I'{}' rm -rf '{}'
晚上下课后,悠闲地走出教学楼,不经意间抬头,远处灯光朦胧,影影绰绰,再往上看,一弦弯月静静地挂在天边,像是茫茫大海上的一叶扁舟,散发出柔和而又清冷的光芒,别有一番美态。我这人有些懒,偏爱舒适安逸的生活,因而看到这般光景的月亮,并未想起什么诗情画意的诗句来赞美它,而是想着...}

我要回帖

更多关于 亚马逊的认证翻新机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信