• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 工厂模式--实战详解,--实战详解

工厂模式--实战详解,--实战详解

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了java工厂模式详解,安卓工厂模式详解,工厂模式详解,海信电视工厂模式详解,简单工厂模式等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

工厂模式--实战详解,--实战详解


工厂模式:
有很多解释,我这里把我所理解的结合经验,诠释给大家:公司有个这样一个需求,在App中要使用到LBS定位来实现某些功能。产品技术一大堆开始了需求、技术确认会,当大家讨论到定位是用百度API来实现,还是用高德来实现。大家争论不休,有人说百度定位不准,有人说高德定位不准,众说纷纭。咋办?最后,B总拍板,两个一起用,哪个好用哪个,领导拍板了,但说了又等于没说,咋办?工厂模式这时候就呼之欲出了,我两个都给你设计,代码设个开关和参数,你说用高德不爽,我改个参数,就换百度,直到领导高兴为止,于是代码就产生了。     

public class test {
       public static void main(String[] args) {
              Location position= new LocationFactory().getInstance("xiaomi");
              position.getPosition();
              position.getCityName(10, 20);
       }
}
 
class LocationFactory{
       public static Location getInstance(String type){
              if("baidu".equals(type)){
                     return new BaiduLocation();
              }else {
                     return new XiaoMiLocation();
              }
       }
}
class BaiduLocation implements Location{
       @Override
       public void getPosition() {
              // TODO Auto-generated method stub
              System.out.println("通过百度定位获取到当前的经纬度是XXXXX");
       }
       @Override
       public void getCityName(long lat, long lng) {
              // TODO Auto-generated method stub
              System.out.println("通过百度定位获取到当前的城市是XXXXX");
       }
}
class XiaoMiLocation implements Location{
       @Override
       public void getPosition() {
              // TODO Auto-generated method stub
              System.out.println("通过小米定位获取到当前的经纬度是XXXXX");
       }
       @Override
       public void getCityName(long lat, long lng) {
              // TODO Auto-generated method stub
              System.out.println("通过小米定位获取到当前的城市是XXXXX");
       }
}
interface Location{
       public void getPosition();
       public void getCityName(long lat,long lng);
}

上面的例子,较好的阐述了工厂模式的概念。LocationFactory是一个工厂类,静态函数getInstance的参数决定了是选用百度还是高德,这样,对于调用者来说,只需要关心你是用百度还是高德即可。Location是一个接口,它抽象出高德和百度常用的函数调用。拿定位来说,基本上常用的就是根据经纬度查询地址,或者定位当前所在位置获取经纬度。当然可能还有更多有用的函数,我这里就不在列举。有了这样一个共性的接口,XiaoMiLocation和BaiduLocation通过实现它的接口就能分别满足调用者的需求。调用者就能够任意通过改变参数,来实现来自不同定位API的需求。当然,如果百度和高德不爽,你完全可以使用谷歌API,只需要构造一个GoogleLocation类并实现Location接口的方法即可。

       工厂模式的应用非常广泛,比如android的bitmap中常用的BitmapFactory类,创建Bitmap对象,通常使用静态工厂方法。  

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 工厂模式--实战详解,--实战详解

相关文章

  • 2017-05-26可伸缩的textview,伸缩textview
  • 2017-05-26Android屏幕适配方案
  • 2017-05-228.3.7 Paint API之—— Xfermode与PorterDuff详解(四)
  • 2017-05-26一个大四毕业生想对自学Android的大学生说一些话,android大学生
  • 2017-05-26Android Fragment生命周期,androidfragment
  • 2017-05-228.2.1 Bitmap(位图)全解析 Part 1
  • 2017-05-26关于Android中的三级缓存,
  • 2017-05-26去除GridView选中时的蓝色背景,gridview选中蓝色
  • 2017-05-26android ImageSwitcher,imageswitcher
  • 2017-05-26安卓第十四天笔记-内容提供者(ContentProvider),contentprovider

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 解决Android Graphical Layout 界面效果不显示,androidgraphical
    • 安卓工程师笔试--2015--波导公司,安卓--2015--
    • 好玩的Handler,好玩Handler
    • Kotlin的Reified类型:怎样在函数内使用这一类型(KAD 14),kotlinreified
    • Hive 1.2.1&Spark&Sqoop安装指南
    • [android] 手机卫士接收短信指令执行相应操作,android接收短信
    • Android系统属性简介,android属性简介
    • 购物车动画(Android),购物车动画android
    • android ImageSwitcher,imageswitcher
    • 开源图表库MPAndroidChart使用介绍之饼状图&折线图&柱状图,图表mpandroidchart

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有