Android学习——工厂模式
来源:互联网 发布:ios运行windows程序 编辑:程序博客网 时间:2024/05/16 14:56
最近面试被问了工厂模式,有些忘却,自己总结一下:
工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。
举个例子:公司有个这样一个需求,在App中要使用到LBS定位来实现某些功能。既可以用百度地图api,也可使用高德地图api,但是公司领导想要都用,看哪个好用用哪一个。这样就用到工厂模式了,我两个都给你设计,代码设个开关和参数,只要改个参数,就换地图api。
public class test { public static void main(String[] args) { Location position= new Factory().getInstance("gaode"); position.getCity(); }}class Factory{ public static Location getInstance(String type){ if("baidu".equals(type)){ return new BaiduLocation(); }else { return new GaodeLocation(); } }}class BaiduLocation implements Location{ @Override public void getCity() { // TODO Auto-generated method stub System.out.println("百度-城市"); }}class GaodeLocation implements Location{ @Override public void getCity() { // TODO Auto-generated method stub System.out.println("高德-城市"); }}interface Location{ public void getCity();}
Factory是一个工厂类,通过getInstance的参数决定了创建的类,用来区分高德和百度。Location是一个接口,它抽象定义了BaiduLocation和GaodeLocation的函数调用。调用者能够任意通过改变参数,来实现来自不同定位API的需求。
使用工厂模式的好处是:耦合度变低,从工厂类中取对象;
0 0
- Android学习——工厂模式
- 设计模式学习笔记——简单工厂模式、工厂方法模式、抽象工厂模式
- 学习设计模式——--工厂模式
- 设计模式——工厂模式学习
- 设计模式学习——工厂模式
- 学习:java设计模式—工厂模式
- 设计模式学习—简单工厂模式
- 设计模式学习—工厂方法模式
- 设计模式学习—抽象工厂模式
- 设计模式学习02—工厂模式
- 学习:java设计模式—工厂模式
- 学习:java设计模式—工厂模式
- 学习:java设计模式—工厂模式
- 学习:java设计模式—工厂模式
- 学习:java设计模式—工厂模式
- 学习:java设计模式—工厂模式
- 学习:java设计模式—工厂模式
- 学习:java设计模式—工厂模式
- linux下升级gcc的方法
- 使用Poco实现插件方式加载动态库
- C++用new和不用new创建类对象区别
- 静态变量 static
- openwrt之直接安装iperf
- Android学习——工厂模式
- c语言局部变量与全局变量大小的限制
- Android ORM框架 greenDao使用
- 物理地址和虚拟地址1 (MMU)
- virtual关键字的作用
- thinkcmf thinkphp 学习
- c++实验3-个人所得税计算器
- 此生非VR不娶(VR介绍与探讨)
- 动画技巧之——Scroller类的使用与滑动的几种方法