admin 管理员组

文章数量: 1086019


2024年4月15日发(作者:html与css入门经典pdf)

实验一:单例模式

实验内容:

单例模式:创建一个主席类(Chairman),保证整个项目中只能创捷一个主席,主席的名

称是“测试”。

单例模式:创建一个元帅类(Marshall),保证整个项目中只能创捷十个元帅,元帅的名称

是:“”。

测试:创建一个测试类SingletonClient,测试上面的创建对象的正确性。

设计

SingletonClient

+testSingleton()

+testMultiton()

Chariman

-static Chairman chairman

-String name

+get

-Chairman(String name)

+static Chairman getInstance()

+static void compChairman(Chairman

chairman1,chairman2)

+static void printMarshalls()

Marshall

-static Set marshalls

-static ArrayList select

-String name

+get

-Marshall(String name)

+static Marshall getInstance(String name)

+static void printMarshalls()

图 1 单例模式类图

核心代码

核心代码

private Chairman(String name){

= name;

}

private static Chairman chairman = new Chairman("");

public static Chairman getInstance(){

return chairman;

}

核心代码

private static ArrayList select = new ArrayList<>();

private static ArrayList marshalls = new ArrayList<>();

static {

String[] marshallNames ={" "};

for (int i = 0;i<;i++ ) {

(new Marshall(marshallNames[i]));

}

}

private Marshall(String name){

= name;

}

public static Marshall getInstance(String name){

for (Marshall marshall: marshalls) {

if (e() == name){

boolean flag = true;

for (Marshall mar : select){

if (mar == marshall) flag = false;

break;

}

if (flag) (marshall);

return marshall;

}

}

return null;

}

实现效果

图 2 单例模式实现效果图

实验体会

这次实验实现了单例设计模式和多例设计模式的小demo,深入体会了什么是单、多例

模式和单、多例模式的精髓,在打代码的过程中有些时候有些对象需要保持唯一性,比如这

个世界上只有一个地球,只有一个中国;一所学校里面的校长只有一个;一个国家只有一个

主席;一个餐厅的老板只有一个等等;多例也就是限定了个数,其思想与单例类似,很多时

候我们要考虑实际情况,之前可能自己的代码不够完善,有些需要单例的时候没有做到单例,

导致了代码的不严谨,在以后的编程中,我会让自己变得更加的敏锐,多从实际角度出发,

这样也可以避免一些不必要的错误。


本文标签: 单例 模式 代码 需要