• Java SE 第二十五讲 单例模式详解


    1.接口中所声明的方法都是抽象方法.接口中的方法都是public.

    2.接口中也可以定义成员变量.

    接口中的成员变量都默认是static的,public的,final的

    3.一个 类不能既是final,又是abstract的,因为abstract的主要目的是定义一种约定,让子类去实现这种约定,而final表示该类不能被继承,这样abstract希望该类可以被继承,而final明确说明该类不能被继承,两者矛盾.因此一个类不能既是final的,又是abstract的.

    public abstract final class Test

    {

    }

    不能编译通过.为什么?

    4.Design Pattern ( 设计模式 ).

    经典的设计模式23个

    最简单设计模式的单例模式(Singleton)又叫单态模式:表示一个类只会生成唯一的一个对象.

    第一种实现方式:

    public class SingletonTest

    {

    public static void main(String agrs [])

    {

    Singleton singleton = Singleton.getInstance();

    Singleton singleton2 = Singleton.getInstance();

    System.out.println(singleton == singleton2);

    }

    }

    class Singleton

    {

    private static Singleton singleton = new Singleton();

    private Singleton()

    {

    }

    public static Singleton getInstance()

    {

    return singleton;

    }

    }

    运行结果为:true,说明两个引用指向同一个对象,这就是单例模式.

    public class SingletonTest

    {

    public static void main(String agrs [])

    {

    Singleton singleton = Singleton.getInstance();

    Singleton singleton2 = Singleton.getInstance();

    System.out.println(singleton == singleton2);

    }

    }

    class Singleton

    {

    private static Singleton singleton;

    private Singleton()

    {

    }

    public static Singleton getInstance()

    {

    if(singleton == null)

    {

    singleton = new  Singleton();

    }

    return singleton;

    }

    }

    本博客内容所有权限保留,若需合作请与博主联系.博主邮箱:donaldjohn@qq.com
  • 相关阅读:
    Java for LeetCode 229 Majority Element II
    Java for LeetCode 228 Summary Ranges
    Java for LeetCode 227 Basic Calculator II
    Java for LintCode 颜色分类
    Java for LintCode 链表插入排序
    Java for LintCode 颠倒整数
    Java for LintCode 验证二叉查找树
    Java for LeetCode 226 Invert Binary Tree
    Java for LeetCode 225 Implement Stack using Queues
    Java for LeetCode 224 Basic Calculator
  • 原文地址:https://www.cnblogs.com/donaldjohn/p/1966528.html
Copyright © 2020-2023  润新知