模式

Android MVP 模式 项目初体验(一)

老子叫甜甜 提交于 2019-12-09 20:36:07
版权声明:本文出自veidy的博客,转载必须注明出处 转载请注明出处 : http://my.oschina.net/aibenben/blog/381274 之前大家听得最多的是MVC,去年 去中兴面试的时候被问到MVP,当时脑子里面第一个想到是NBA 詹姆士,哈哈哈。那是第一次听到MVP模式,后面也没注意,再后面又听到别人提起,于是百度了解了一下。 什么是MVP? 为什么要用MVP? 怎么在Android上实现MVP? 我再这里给大家推荐一篇博客: ym——Android开发MVP模式(解决了View和Model的耦合) 不多说了,我写了一个登录的Demo,直接拿来分析MVP在项目中的使用吧。 大家先看看目录结构 先看M层 model里面我写了一个接口LoginModel,一个实现类LoginModelImple然后还有一个接口OnLoginListener 先看LoginModel 再看LoginModelImple 接着我们看V层 View里面我写了一个接口LoginView 然后,在登录这个Activity 去实现这个接口,并实现其抽象方法。即看LoginActivity 最后我们看P层。 这是很重要的一个环节 我们不是要登录吗?所以我们在LoginPresenter里面写一个方法login(),然后我们在ActiviLoginActivity点击登录按钮后调这个方法。

设计模式笔录(二),设计模式有哪些

巧了我就是萌 提交于 2019-12-03 17:54:18
本人出道5年,学习、编程、再学习、再编程一路走过,只是在笔和纸留下些脚印,实感惭愧。现开始把自己学习到的心得,实践中的体会,一一贴在互联网上,大家互相学习、探讨,寻找一些技术朋友。有些题材,首先想到了最近感兴趣的设计模式,于是着手眼前,踏出坚实一步。 设计模式都有哪些? 按照GOF提出,24种,按照目的分为:创建型(creational)、结构性(structural)、行为型(behavioral)。 一、创建型: 1、Singleton 单例模式。一个类的唯一实例。 2、Factory Method 工厂模式。被实例化的子类。 3、Abstract Factory 抽象工厂模式。产生对象家族。 4、Builder 生成器模式。如何创建一个组合对象。 5、Prototype 原型模式。被实例化的类。 二、结构型: 1、Adapter 适配器模式。对象的接口 2、Bridge 桥模式。对象的实现。 3、Composite 组成模式。一个对象的结构和组成。 4、Decorator 装饰模式。对象的职责,不生产子类。 5、Facade 外观模式。一个子系统的接口。 6、Flyweight 享元模式。对象的存储开销。 7、Proxy 代理模式。如何访问一个对象;该对象的位置。 三、行为型: 1、Chain Of Responsibility 职责链模式。满足一个请求的对象。 2

谈谈MVC与微信

拜拜、爱过 提交于 2019-12-02 14:50:46
最近被问到一个问题,"用mvc谈谈微信的架构设计",下面是我的总结 1、对MVC的理解 mvc指的是模型(M—Module),视图(View),控制器(Control)。一般情况下,M指一个项目的存储结构,存储数据模型以及业务业务数据模型,V指的是用户与系统的交互接口,也叫做表现层,这里对用户体验考虑较多,C代表用户从视图接口接入的真正功能,掌管业务功能的变现,也叫逻辑层,三个层次间用接口定义交互边界,用工厂产生具体的实现,可以有效地减少耦合,提高迭代效率和开发效率等。 2、从MVC视角看微信 用mvc的视角看待微信这个项目,可以用mvc对微信做一个大概的分级,其中可以将微信客户端整个看成一个v层,微信服务器由M,C结合。 3、从MVC视角浅谈微信 考虑到微信客户端变更成本过高的问题,将逻辑重心放到服务器,即服务器处理数据的流入流出和对客户端提供接口,客户端主要负责展示效果。服务器在不能有效优化的阶段前提下,可以将不是服务器必要的具体实现逻辑交由客户端实现,避免服务器增加重复判断(例如:服务器对android、ios、wp客户端的各种消息统一协议,具体消息的处理交由客户端识别处理)。客户端可以使用混合编程,即一部分使用java原生代码,一部分通过webview的衍生使用网页展现,可以减少客户端的开发实现和更新成本,忽略必要的质量监控逻辑和容灾逻辑以及必要的版本区分逻辑

在PHP框架中需要使用smarty模板吗?

扶醉桌前 提交于 2019-12-02 05:28:52
在 java 开发中使用模板已经习以为常了,很多人讨厌 java web 开发栈中的 JSP,虽然 sun 公司推出了 JSF,但总感觉出来的不是时候,一直也没有怎么用过。在 java 网站开发教程中,SSH 中的两大框架 Struts 推荐使用 Velocity,而在 Spring 中则推荐使用 freemarker。甚至在前端语言 javascript 中都出现了各种各样的模板引擎。 在 PHP 的轻量级框架 CodeIgniter 中,明确写明: 注意:因为在视图文件中使用纯 PHP 要快一些,所以 CodeIgniter 不要求你一定要用这个类。然而,有一些开发者和对使用 PHP 有困难的设计师一同工作时,更愿意使用模板引擎。 模板是框架发展的新方向吗?使用 Smarty 呢,还是自己手写模板,或者用框架自带的。 我不少开发者认为:“就用 CI 的模板,我觉得 CI 这样的模版方式很爽”。 “模版自己写!”。 还有人觉得不应该使用模板,这些开发者主要是考虑到性能。 “最具性能的模板就是不要模板,直接 echo”。 但是,使用模板也不一定就达不到性能,“我是直接生成 html,大些的项目有必要生成一个”。 模板的坚持使用者们还给出了其它理由: “这个改变不影响模板设计者,内容仍将准确的输出到模板。同样的,哪天美工吃多了想要完全重做界面,也不会影响到程序逻辑。这是 smarty

android与模式:设计原则

本秂侑毒 提交于 2019-11-27 19:11:48
在谈设计模式之前,如果不谈设计原则,我认为是无根之浮萍。 为什么这么说,为什么我们要学设计模式,为什么前人将这些东西抽象和总结出来?这就是要了解设计原则的必要性,开始学的时候,可能不一定需要了解或者很明白,也许看过即可,如果能记住点,当然更好,本身设计模式的学习,我认为就是一个反复琢磨,反复使用的过程,根据很多具体场景和具体情况,也许有很多不同的理解和应用,这是设计模式的精彩之处。 面向对象设计的2个基本原则: 1.针对接口编程,而不是针对实现编程。 -- 针对抽象编程 2.优先使用对象组合,而不是类继承。 --合成复用原则 面向对象设计的6个设计原则: 1.单一职责原则(SRP) 2.开放封闭原则(OCP) 3.Liskov替换原则(LSP) 4.依赖倒置原则(Dependence Inversion Principle),简称DIP 5.接口隔离原则(ISP) 6.迪米特法则(Law of emeter),最少知识原则(Least Knowledge Principle 简写LKP) 来源: oschina 链接: https://my.oschina.net/u/927877/blog/205748

Liferay开发学习Part3:5种开发模式

纵饮孤独 提交于 2019-11-27 00:41:39
Liferay共有5种开发模式: portlet(portlet插件):其结构和内容和普通的WEB工程区别不大 portlet-ext(portlet扩展插件):不推荐 layout(布局):可定制布局 theme(主题):主题包,通过此模式提供的向导工具,为主题包开发大大提供便利 hook:重写覆盖liferay的默认页面,为开发提供一种不直接修改Liferay核心源码的情况下修改Liferay核心功能的方法。 来源: oschina 链接: https://my.oschina.net/u/589482/blog/104935