Android学习之设计模式之工厂模式
来源:互联网 发布:淘宝怎么设置登录验证 编辑:程序博客网 时间:2024/06/10 00:47
今天来写下工厂模式。
什么是工厂模式呢?举个栗子,例如要实现分享功能,是使用微博SDK来进行分享还是微信SDK还是其他SDK来进行分享呢?万一老板要求只能使用其中之一来分享呢?在大家不知道哪种方式最好的时候可以使用工厂模式,我两个都设计好,代码设个开关,哪个用的不爽了就换另一个,直到老板满意为止。
这里并不实现真正的分享和SDK集成,写个例子来展现一下什么是工厂模式:
先写个接口来抽取微博和微信常用的方法:
/** * 分享接口 * * @author yuzhentao */public interface ShareListener { /** * 分享 */ void share();}
有了这个接口,微博和微信就能通过实现它来分别满足调用者的需求:/** * 微博 * * @author yuzhentao */public class Weibo implements ShareListener { @Override public void share() { Log.e("yuzhentao", "分享到微博"); }}
/** * 微信 * * @author yuzhentao */public class Weixin implements ShareListener { @Override public void share() { Log.e("yuzhentao", "分享到微信"); }}
然后是工厂类,通过静态方法getInstance来调用微博或者微信分享:/** * 分享工厂 * * @author yuzhentao */public class ShareFactory { public static ShareListener getInstance(String name) { if (name.equals("Weixin")) { return new Weixin(); } else if (name.equals("Weibo")) { return new Weibo(); } return new Weixin(); }}
最后是主界面,这样对于调用者来说只要关心调用的是微博还是微信分享即可,想用哪个直接切换即可:/** * 主界面 * * @author yuzhentao */public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ShareListener shareListener = ShareFactory.getInstance("Weixin"); shareListener.share(); }}
例子很简单,当然本人理解也不是很深,这里就简单写下自己的想法。
希望对大家有所帮助。Demo地址:http://download.csdn.net/detail/qq_23940659/9481492
1 0
- Android 设计模式学习之工厂模式
- Android学习之设计模式之工厂模式
- Android设计模式之工厂设计模式
- Android开发框架/库学习,设计模式之工厂模式
- 设计模式入门学习之工厂模式
- 设计模式学习笔记之工厂模式
- 设计模式学习之简单工厂模式
- 设计模式学习之工厂模式
- 设计模式 学习之工厂方法模式
- 设计模式之简单工厂模式学习
- 设计模式之工厂模式学习
- 设计模式之抽象工厂模式学习
- 设计模式学习笔记之工厂模式
- 学习笔记:设计模式之工厂模式
- JAVA学习.设计模式之工厂模式
- 设计模式学习之简单工厂模式
- 设计模式学习之简单工厂模式
- Java设计模式学习之工厂模式
- android中的sharedPreferences应用与理解
- 山东省第二届ACM大学生程序设计竞赛 Binomial Coeffcients 递推
- ArcGIS教程:使用 ArcGIS for Desktop 服务
- 大数运算
- ListView的使用
- Android学习之设计模式之工厂模式
- 获取屏幕的宽高
- JAVA中ThreadLocal用法介绍
- Java NIO系列教程(二) Channel
- Linux下Apache Hadoop2.7.2的集群安装以及WordCount示例
- 5.Object-c/IOS 枚举类型:enum,NS_ENUM,NS_OPTIONS
- Android Low memory killer
- java集合框架概述
- Java_反射机制