博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单例和工厂模式应用
阅读量:2814 次
发布时间:2019-05-13

本文共 1911 字,大约阅读时间需要 6 分钟。

           单例模式虽然说只有一个类,但是在应用中,作用也不小,下面看看单例模式和工厂模式的应用:

1、单例模式

        1)懒汉式单例模式

   

public class UserManager {    //实例化静态变量    private static UserManager instance=new UserManager();        private UserManager(){}     //获取唯一实例    public static UserManager getInstance(){        return instance;    }          }          2)恶汉式单利模式                public class UserManager {    //实例化静态变量    private static UserManager instance=null;        private UserManager(){}     //获取唯一实例    public static UserManager getInstance(){        if (instance==null){            instance=new UserManager();        }        return instance;    }          }

2、工厂模式

        1)电视接口及其实现类:

      

电视接口:                   public interface TV{    //打开电视    public void openTV();        //关闭电视    public void closeTV();}               海尔电视:public class HaiErTV implements TV{    //打开电视    @Override    public void openTV(){        System.out.println("打开海尔电视");    }        //关闭电视    @Override    public void closeTV(){        System.out.println("关闭海尔电视");    }}                长虹电视:public class ChangHongTV implements TV{    //打开电视    @Override    public void openTV(){        System.out.println("打开长虹电视");    }        //关闭电视    @Override    public void closeTV(){        System.out.println("关闭长虹电视");    }}         2)电视工厂接口及其实现类                电视工厂:               public interface TVFactory {             //创建电视       public TVcreateTV();   }               海尔电视工厂:public class HaiErTVFactory implements TVFactory {    //创建海尔电视    @Override    public TV createTV(){        System.out.println("创建海尔电视");                     return new HaiErTV();    }}                长虹电视工厂:public class ChangHongTVFactory implements TVFactory {    //创建长虹电视    @Override    public TV createTV(){        System.out.println("创建长虹电视");        return new ChangHongTV();    }}         3)客户端调用                  TVFactory tvFactory=new HaiErTVFactory();        TV tv=tvFactory.createTV();        tv.open();

转载地址:http://oezhd.baihongyu.com/

你可能感兴趣的文章
OOD, OOA和OOP
查看>>
Experience with UIWebView(iOS UIWebView截取的一些使用经验)
查看>>
苹果电脑Finder中用户选项显示
查看>>
iOS开发BaseModel的创建和使用(基类)
查看>>
iOS获取设备信息和获取当前屏幕状态
查看>>
使用AFN 的POST请求出现错误"Error Domain=NSCocoaErrorDomain Code=3840 "决绝方案
查看>>
iOS 调试问题记录(一)
查看>>
UITextView自定义封装(带placeHolder)
查看>>
基于MBProgressHUD的封装
查看>>
iOS应用程序的生命周期
查看>>
Xcode个人常用插件总结
查看>>
iOS MVVM+RAC 从框架到实战
查看>>
iOS原生二维码扫描
查看>>
iOS多语言功能开发小结
查看>>
GitHub中国区前100名到底是什么样的人?
查看>>
iOS 如何设置一整张图片作为背景图片(穿透导航栏)
查看>>
一个iOS程序员的BAT面试经验
查看>>
几句代码快速集成自定义转场效果+ 全手势驱动
查看>>
Swift3.0已出坑-适配iOS10,项目迁移Swift3.0问题总结。
查看>>
[iOS]动态修改app 图标(icon)
查看>>