您的当前位置:首页>新品 > 正文

【扑克类】多例模式的概念和作用

来源:CSDN 时间:2023-02-08 10:09:10

多例模式的概念和作用

多例模式:指在程序运行期间,某个类只需固定几个实例,不能多,也不能少。这时就需要将这个类设计为:多例模式。 2.例如: 扑克程序:程序中会定义:扑克类。但程序运行,固定需要54个扑克对象,这时这个“扑克类”就需要设计为“多例模式” 一个程序:需要用到“红、绿、蓝”三个颜色,我们可以定义颜色类,但我们只需要三个对象,所以这时就可以将“颜色类”设计为“多例模式”。


(资料图片)

多例模式的实现方式—获取通用对象

不能指定获取某个对象

public class Student {//1.构造方法私有化    private Student(){}    //2.提供一个集合,集合中存储本类对象    private static ListstuList = new ArrayList<>();    static {//初始化50个Student对象,存储到集合        for (int i = 0; i < 50; i++) {stuList.add(new Student());        }    }    //3.定义公有、静态方法,随机获取集合中的一个Student对象    public static synchronized Student getInstance(){Random random = new Random();        int i = random.nextInt(stuList.size());        return stuList.get(i);    }}

public class Test01 {public static void main(String[] args) {Student stu1 = Student.getInstance();        Student stu2 = Student.getInstance();    }}

多例模式的实现方式—获取特定对象[重点]

构造方法私有化。创建public,static,final 本类对象引用

public class Student {private String name;    public Student(String name, Sex sex) {this.name = name;        this.sex = sex;    }    public String getName() {return name;    }    public void setName(String name) {this.name = name;    }    public Sex getSex() {return sex;    }    public void setSex(Sex sex) {this.sex = sex;    }    private Sex sex;    @Override    public String toString() {return "Student{" +                "name="" + name + "\"" +                ", sex=" + sex +                "}";    }}//多例模式的Sex类class Sex{//1.构造方法私有化    private Sex(String sex) {this.sex = sex;    }    private String sex;    //2.提供两个公有、静态、final的本类对象引用    public static final Sex MAN = new Sex("男");    public static final Sex WOMEN = new Sex("女");    @Override    public String toString() {return sex;    }}

多例模式实现小结 --获取特定对象实现小结

自定义类(Sex),将构造方法私有化,定义几个公有、静态、final的本类对象的引用。定义测试多例类的类(Student类):使用了自定义类(Sex)定义测试类,编写main()方法

标签:

最新新闻:

新闻放送
Top