设计模式

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

1. 单例模式

1.1 饿汉式
  • 构造器私有化
  • 类的内部创建对象
  • 向外暴露一个静态的公共方法
  • 代码实现
public class code3 {
    public static void main(String[] args) {
        GirlFriend instance = GirlFriend.getInstance();
        System.out.println(instance);
    }
}
class GirlFriend{
    private String name;
    private static GirlFriend gf = new GirlFriend("xhh");
    // 保证只能创建一个GirlFriend对象
    // 1. 构造器私有化
    // 2. 再类的内部直接创建
    // 3. 提供一个公共的static方法,返回gf对象
    private GirlFriend(String name) {
        this.name = name;
    }
    public static GirlFriend getInstance(){
        return gf;
    }

    @Override
    public String toString() {
        return "GirlFriend{" +
                "name='" + name + '\'' +
                '}';
    }
}
1.2 懒汉式
class Cats{
    private String name;
    private static Cats cat;
    private Cats(String name) {
        this.name = name;
    }
    public static Cats getInstance(){
        if(cat == null){
            cat = new Cats("tom");
        }
        return cat;
    }

    @Override
    public String toString() {
        return "Cats{" +
                "name='" + name + '\'' +
                '}';
    }
}
1.3 小结 饿汉式和懒汉式的区别
  1. 饿汉式是在类加载就创建了对象实例,懒汉式是在使用才创建。
  2. 饿汉式不存在线程安全问题,懒汉式存在线程安全。
  3. 饿汉式存在浪费资源的可能,懒汉式不存在。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容