文明6刷钱bug没用了啊,不能刷MVP+啊?

王者荣耀用鲁班七号拿mvp就是这么简单_腾讯视频
三倍流畅播放
1080P蓝光画质
新剧提前看
1080P蓝光画质
纯净式无框播放器
三倍流畅播放
扫一扫 手机继续看
下载需先安装客户端
{clientText}
客户端特权:
3倍流畅播放
当前播放至 {time}
扫一扫 手机继续看
王者荣耀用鲁班七号拿mvp就是这么简单
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要
副标题要不要登录以解锁更多InfoQ新功能
获取更新并接收通知
给您喜爱的内容点赞
关注您喜爱的编辑与同行
966,690 四月 独立访问用户
语言 & 开发
架构 & 设计
文化 & 方法
您目前处于:
不要再给MVP中Prensenter写接口了
不要再给MVP中Prensenter写接口了
Pedro Vicente Gómez Sánchez
0&他的粉丝
0&他的粉丝
日. 估计阅读时间:
,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。
亲爱的读者:我们最近添加了一些个人消息定制功能,您只需选择感兴趣的技术主题,即可获取重要资讯的。
相关厂商内容
相关赞助商
原文链接:
我们在Karumi已经说了很久的MVP了。今天,我们讨论的是是否需要给MVP中的Presenter写接口。
这是MVP图解:
在上面的图解中Model包含了所有实现业务逻辑的代码。Presenter负责实现展示逻辑,View是抽象化视图的接口。
为什么在这种模式下View需要用接口来实现?
因为我们想将View的实现解耦。我们需要将编写Presentation层的框架抽象化,使它没有外部依赖。如果需要,我们应可以很轻松的修改视图的具体实现。我们应当遵守以便进行单元测试。请记住,为了遵守依赖原则,高层次的概念 - 比如Presenter的实现,不能依赖任何低层次的细节,比如View的具体实现。
为什么使用接口有益于进行单元测试?
因为为了编写单元测试,所有的代码都应该关联到你的域,而不是外部系统,比如SDK或某个框架。
让我们通过一个Android中登录界面的例子来解释。
* 登录用例。给出登录所需的邮箱和密码。
public class Login {
private LoginService loginS
public Login(LoginService loginService) {
this.loginService = loginS
public void performLogin(String email, String password, LoginCallback callback) {
boolean loginSuccess = loginService.performLogin(email, password);
if (loginSuccess) {
callback.onLoginSuccess();
callback.onLoginError();
* LoginPresenter,实现了和用户登录接口相关联的Presentation逻辑。
public class LoginPresenter {
private LoginV
public LoginPresenter(LoginView view, Login login) {
this.view =
this.login =
public void onLoginButtonPressed(String email, String password) {
if (!areUserCredentialsValid(email, password)) {
view.showInvalidCredentialsMessage();
login.performLogin(email, password, new LoginCallback {
void onLoginSuccess() {
view.showLoginSuccessMessage();
void onLoginError() {
view.showNetworkErrorMessage();
* 声明了Presenter可以对View进行的操作,不依赖View具体实现,避免造成耦合。
public interface LoginView {
void showLoginSuccessMessage()
void showInvalidCredentialsMessage()
void showNetworkErrorMessage()
public class LoginActivity extends Activity implements LoginView {
请不要关注代码语法,这些都是代码片段,几乎可以说是伪代码了。
为什么这里需要View接口?
因为你需要在单元测试中用一个测试对象替代View的实现。那么为什么需要在单元测试中这么做呢?因为你可不想mock一个Android SDK然后在单元测试里使用LoginActivity。要记住所有包含Android SDK的测试都不是单元测试。
一旦这里的实现清晰了,我们就需要一个接口,这样就无需依赖具体的实现了。
有的开发者还给Presenter设计了接口。如果我们继续按照上面的例子来写,那么实现会是这样:
public interface LoginPresenter {
void onLoginButtonPressed(String email, String password);
public class LoginPresenterImpl implements LoginPresenter {
或者是这样:
public interface ILoginPresenter {
void onLoginButtonPressed(String email, String password);
public class LoginPresenter implements ILoginPresenter {
这个多余的接口会造成什么问题?
恕我直言,这个接口并没有什么用处,它只是使整个开发过程更加复杂混乱。为什么这么说?
看看类名。当接口是多余的时,所起的名字就会很奇怪,对代码也没有语义的价值。
如果我们修改了Presentation逻辑,那么我们还需要修改这个接口。改好之后,我们才能更新实现。就算我们使用高级先进的IDE,这还是很浪费时间。
程序的走向很难把控。这是因为每当你在Activity(View的实现)中,想要进入Presenter时,你需要使用的是接口,但你常常想进入的是实现类。
接口并没有提高项目的可测试性。Presenter类可以通过任何mocking库由测试替身轻松替换,或是手动编写测试替身。我们总不能写一个依赖Activity并替换了Presenter的测试。
所以说,LoginPresenter接口到底带来了什么呢?只有噪音啦。
我们应在何时使用接口呢?
当我们有多于一个实现时(在这里我们只有一个Presenter实现),我们应当使用接口。还有,当我们需要将我们的代码和某第三方库,比如某框架或SDK划清界线时也需要写接口。就算不使用接口,我们也可以使用Composition来生成抽象,但是直接使用Java接口自然轻松得多。我们建议在对某个概念有多个实现或是需要明确界线时使用接口。不然,还是不要添加多余代码了。记住接口的使用不是生成抽象、实现解耦的唯一方法。
那如果我想讲View实现与Presenter实现解耦呢?
你并不需要这样做。View的实现是一个低层次的细节,Presenter实现是一个高层次的抽象。实现细节可以依赖高层次抽象。你需要将你的域模型从执行框架中抽象出来,但你不需要反其道而行之。尝试对View实现与Presenter实现进行解耦只是浪费时间罢了。
我写了这个博客就是为了讨论这个话题的。欢迎大家评论讨论:)
PS:如果你在尝试Android应用和Presenter的另一种测试方式,我不建议你使用单元测试并使用测试替身替换View。我更愿意使用所描述的方式,SUT是整个Presentation层,而不只是一个Presenter。(这里使用测试替身来替换用例)
感谢对本文的策划和审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博(,),微信(微信号:)关注我们。
Author Contacted
语言 & 开发
417 他的粉丝
架构 & 设计
919 他的粉丝
0 他的粉丝
0 他的粉丝
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
赞助商链接
InfoQ每周精要
订阅InfoQ每周精要,加入拥有25万多名资深开发者的庞大技术社区。
架构 & 设计
文化 & 方法
InfoQ.com及所有内容,版权所有 ©
C4Media Inc. InfoQ.com 服务器由 提供, 我们最信赖的ISP伙伴。
极客邦控股(北京)有限公司
找回密码....
InfoQ账号使用的E-mail
关注你最喜爱的话题和作者
快速浏览网站内你所感兴趣话题的精选内容。
内容自由定制
选择想要阅读的主题和喜爱的作者定制自己的新闻源。
设置通知机制以获取内容更新对您而言是否重要
注意:如果要修改您的邮箱,我们将会发送确认邮件到您原来的邮箱。
使用现有的公司名称
修改公司名称为:
公司性质:
使用现有的公司性质
修改公司性质为:
使用现有的公司规模
修改公司规模为:
使用现在的国家
使用现在的省份
Subscribe to our newsletter?
Subscribe to our industry email notices?
我们发现您在使用ad blocker。
我们理解您使用ad blocker的初衷,但为了保证InfoQ能够继续以免费方式为您服务,我们需要您的支持。InfoQ绝不会在未经您许可的情况下将您的数据提供给第三方。我们仅将其用于向读者发送相关广告内容。请您将InfoQ添加至白名单,感谢您的理解与支持。王者荣耀:不是谁都能成为MVP,但用了它从此不愁不超神王者荣耀:不是谁都能成为MVP,但用了它从此不愁不超神腾讯游戏玩家联盟百家号  梦奇强大的爆发能力与消耗能力让它不仅能对抗线上的强大敌人,在团战中也能迅速切入后排牵制敌人,给敌方输出带来极大威胁;除此之外,梦奇即使不出防御装备也能吸收大量伤害,在前期就能做到以少扛多,在反野中占尽优势。  梦奇在前期有着强大优势,适合游走,但由于它常常打上单,这就限制了它的游走范围,一般与打野配合入侵敌方红buff野区及我方蓝区,视情况可gank支援中路。  英雄定位:上单  梦奇清线、打野能力都十分强大,但不论梦奇在中期是作为肉吸收伤害还是输出切入后排,都需要大量经济支撑,所以上单依旧是梦奇的最佳选择。梦奇上单可利用二技能进行快速清兵,配合打野入侵敌方野区清理野怪后,接着回到线上。  技能解析  被动技能:食梦  解析:梦奇最胖的状态下可以大幅度增加物理攻击、物理防御、法术防御以及自然回血量,对线、团战中梦奇可以借此增强伤害吸收能力;而gank支援时通过使用技能减少体积来增加移动速度。  一技能:梦境萦绕  解析:一技能提供的高额护盾可抵消大量伤害,并且技能冷却极短,在装备差距较小的前中期梦奇依靠此技能可与二至三个敌人对抗,此外使用一技能也会对周围敌人造成较强的杀伤及减速效果,即使不敌也能借此从容撤退。  二技能:梦境挥洒  解析:二技能可形成一个范围减速、持续伤害的漩涡,梦奇触碰漩涡即可将其回收并恢复二技能消耗的质量。梦奇在支援的路上将二技能扔在自己前方然后将其回收,可实现不耗质量加速支援的效果。  三技能:梦境漩涡  解析:三技能可切后排可逃生,团战中常常起到限制敌方走位、减速控制、团队控制的作用,伤害极高且配合一技能杀伤强、能扛伤,是梦奇团战的战术核心。  加点方式:主加一技能副加二技能,有大点大。  装备解析  痛苦面具+疾步之靴+博学者之怒+回响之杖+魔女斗篷+辉月  梦奇输出的主要优势在前中期,技能的基础属性相当高,前期不依赖装备也能拥有强大的生存能力和作战能力,前期的游走支援是它主要任务;中后期选择输出装备则以切后排为主,限制敌方输出火力,在输出的基础上保证切入后的生存能力。  前中期装备:痛苦面具+疾步之靴+博学者之怒+回响之杖  在前期,梦奇不必依赖装备就能打出极高伤害,但移动速度是梦奇的硬伤,所以开局阶段优先出疾步之靴,增强它游走支援能力;痛苦面具+博学者之怒+回响之杖,三件装备让梦奇拥有强大的爆发秒杀能力,找准机会控住敌方后排,配合我方刺客可瞬间秒杀敌方输出力量。  中后期装备:魔女斗篷+辉月  后期敌方的输出能力极高,即使以梦奇极短的技能冷却也难以凭一技能的护盾抵消所有伤害,所以需要魔女斗篷和辉月支撑,将敌方输出牵制住等待队友支援:魔女斗篷附加的法术护盾可以抵消相当一部分的伤害,当面对敌方火力集中的局势时使用辉月可躲掉大多数指向性技能,为梦奇赢来宝贵的喘息时间。  铭文搭配  本篇中梦奇的打法主攻暴力输出和支援,所以铭文的选择倾向输出。  五级铭文  红色:梦魇*10,法术攻击+42,法术穿透+24;  绿色:心眼*10,攻击速度+6%,法术穿透+64;  蓝色:狩猎*10,攻击速度+10%,移动速度+10%;  法术攻击与法术穿透是梦奇必须的输出属性,其中法术穿透再加上痛苦面具所增加的法术穿透,在前期梦奇可以轻而易举的撕裂敌人的武装,给敌人造成高额伤害;移动速度再配合疾步之靴,从上路支援中路、入侵野区效率将大幅度增强;梦奇满质量后普通攻击也不容小觑,增加攻击速度可填补梦奇技能冷却间隙输出不足的弱点。  使用技巧  1.梦奇质量与移动速度的权衡技能  毫无疑问,梦奇在质量较高时战斗力较强,但支援、团战过程中常常遇到需要追击、撤退的情况,此时移动速度就十分重要。团战时将二技能在梦奇附近,计算好技能持续时间,依据情况需要回收,这样就能保证梦奇在需要持续作战时能保持最佳状态,适应各类突发情况。  2.进团时间  梦奇切后排主要依靠三技能,当队友中有刺客(如孙悟空)、爆发型法师(如诸葛亮)、团控型战士(如吕布)时,梦奇可先手三技能切后排,因为上述队友能及时跟进支援;当队友属于稳健持续型阵容(如黄忠、妲己、铠)时梦奇必须等待敌方控制英雄交出控制技能后选择近处敌人使用三技能,因为这样的阵容缺少群伤爆发,很难越过敌方坦克及控制英雄的堵截及时支援梦奇,很容易使梦奇陷入包围而被击杀。  配合&克制  与梦奇最适配的英雄莫过于吕布,当两人共同进入战场时,在吕布技能冷却间隙,梦奇可以帮助吕布拖住敌人不让他们离开吕布的攻击范围;而吕布可帮助深入敌方后排的梦奇制造减速地带,有了吕布的保驾护航,梦奇切后排击杀输出的效率也得以成倍增长,并且即使不敌对手也能从容撤退。  梦奇克制的英雄相当多,但最具代表性的莫过于当前热门英雄-扁鹊。  扁鹊的输出依赖被动叠加后的持续输出,很多玩家被扁鹊击杀大多不是被瞬间秒掉,而是脱离战斗后残血被毒死,但对于梦奇而言扁鹊的优势根本不值一提。梦奇的一技能冷却时间极短,扁鹊的毒伤对梦奇来说无关痛痒,往往毒的伤害还没耗尽梦奇一技能提供的护盾,梦奇一技能冷却就结束了。所以当敌方选择扁鹊时不妨用梦奇与之对线。  总结  梦奇在当前版本中依旧强势,几乎没有能完克梦奇的英雄。不过在使用梦奇时要注意一点:三技能一旦取消二段施放将失去消耗的质量,没有质量的梦奇作战能力也大打折扣,所以当梦奇三技能被中断时应及时收缩阵型,不要开团也不要给对方强开的机会。  腾讯游戏玩家联盟出品,作者:TGL-张小小  版本号:v1.32.1本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。腾讯游戏玩家联盟百家号最近更新:简介:腾讯游戏原创内容平台,聚合作者创作内容。相关文章现在用灯刷MVP还行吗?【起凡吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:169,624贴子:
现在用灯刷MVP还行吗?
以前通宵玩的时候 玩累了 卟想杀人了就 开局一鞋子+N个灯,从开局点到结束,哪里黑,点哪里,MVP 很容易拿 ,不过前段时间听人说 现在改版了,说点灯点到一定数量的时候不涨MVP了 是嘛?
不知道,没试过,应该是可以,只要你不被间隙
加的 不过插到一定数量他妈的下不下来了~
一定数量就点不了灯了 不过等你点不了了
也除了对面主城没点了
贴吧热议榜
使用签名档&&
保存至快速回贴【图片】你说我拿个败方MVP有什么用?【王者荣耀吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:7,029,369贴子:
你说我拿个败方MVP有什么用?
你说我拿个败方MVP有什么用?
王者荣耀-腾讯官方-“海量铭文,钻石等你来领”更多礼包点击获取电脑玩手游腾讯官方推荐,完美兼容主流应用,快速流畅无压力!
有没有玩的好的一起玩
再打下去我就要骂人了
同株洲哈哈
后面又大了两把 虽然不是我的MVP 但还是输了
可以到贴吧卖惨啊
哈哈哈哈哈,摸摸头,站起来继续拿
贴吧热议榜
使用签名档&&
保存至快速回贴}

我要回帖

更多关于 文明6刷钱bug没用了 的文章

更多推荐

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

点击添加站长微信