阅读 43

设计模式-单例模式

设计模式:

? 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格以及解决问题的思考方式,设计模式免去了我们自己再去思考和摸索。就像经典的棋谱,对于不同的棋局我们使用不同的棋谱。

? 创建型模式:工厂方法模式 抽象工厂模式 单例模式 建造者模式 原型模式

? 结构型模式: 适配器模式 装饰器模式 代理模式 外观模式 桥接模式 组合模式 享元模式

? 行为型模式:策略模式 模板方法模式 观察者模式 迭代子模式 责任链模式 命令模式 备忘录模式 状态模式 访问者模式 中介者模式 解释器模式

单例设计模式:

? 类的单例设计模式:采取一系列的方法保证整个软件系统中,对某个类只能 存在一个对象实例,并且该类只提供一个取得该对象实例的方法。

? 具体操作:将该类的构造器设置为private,通过类的静态方法获取该类的 对象,静态方法使用的该类对象的变量也要设置为静态的

饿汉式:

public class MyTest01 {
    public static void main(String[] args){
        Bank bank1=Bank.getInstance();
        Bank bank2=Bank.getInstance();
        System.out.println(bank1==bank2);
    }
}
class Bank{
    private static Bank instance=new Bank();
    private Bank(){

    }
    public static Bank getInstance(){
        return instance;
    }

}

懒汉式:

public class MyTest01 {
    public static void main(String[] args){
        Bank bank1=Bank.getInstance();
        Bank bank2=Bank.getInstance();
        System.out.println(bank1==bank2);
    }
}
class Bank{
    private static Bank instance;
    private Bank(){

    }
    public static Bank getInstance(){
        if(instance==null){
            instance=new Bank();
        }
        //instance=new Bank();
        return instance;
    }

}

其实懒汉式可以延迟对象的创建,只有到使用的时候才会创建;饿汉式类一被在加载就自动创建了。

饿汉式天生就是线程安全的。懒汉式其实存在线程不安全的情况。比如说我有两个线程,第一个第一次调用getInstance,所以instance是null,他去执行new的时候,线程堵塞了,第二个线程也去调用getInstance,此时这两个线程都会进行new操作,就产生了线程不安全

应用:java.lang.Runtime典型的单例模式

? 网站的计数器

? 应用程序的日志应用

? 数据库连接池

? 读取配置的类

? Application入口程序

? windows中的任务管理器

? windows中的回收站

原文:https://www.cnblogs.com/gengBlog/p/15302869.html

文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐