单例模式的扩展及应用。
编写一个类LimitInstanceClass,该类最多可以实例化指定个数实例。
实例的个数用配置文件InstanceLimit.cfg指定。
例如,如果InstanceLimit.cfg的内容为2,则LimitInstanceClass最多可以同时存在2个对象。
LimitInstanceClass的对象有一个整型成员变量id,保存对象的编号;
有一个boolean型变量isBusy,如果该变量的值为true,表示该对象正在被使用,否则该对象空闲;
如果存在空闲的对象,则调用LimitInstanceClass的getInstance()方法会返回一个空闲对象,同时将该对象的isBusy置为true;
如果不存在空闲对象则返回null。
LimitInstanceClass有一个release()方法,该方法将对象的isBusy置为false。
LimitInstanceClass还有一个String类型的成员变量accessMessage,以及一个成员方法writeAccessMessage(Stringmessage),该方法将参数message追加到accessMessage。
LimitInstanceClass的printAccessMessage()方法输出accessMessage的内容。
编写一个线程类AccessLimitInstanceClassThread,在其run()方法中获取一个LimitInstanceClass对象,调用获得的对象的writeAccessMessage(Stringmessage)将自己的线程名写入accessMessage,随机休眠0-5秒,再调用printAccessMessage(),最后调用release()方法。
编写一个UseLimitInstanceClass类,在其main方法中实例化10个AccessLimitInstanceClassThread线程对象,并启动各个线程。
设置InstanceLimit.cfg的内容为3,写出你的程序的运行结果。
2025/8/8 1:10:27 6KB 多例模式 单例模式
1
吉林大学软件学院卓班设计模式第一次作业一.使用分类稳定和变化的方法,重新设计类,使得新设计能以扩展代码的方式适应变化未来可能会增加新的数据成员如mVal3,do1和do2中可能访问mVal1、mVal2、mVal3等二.按指定的要求或模式,给出实现。
1.使用工厂方法模式实现工厂类。
其中图书馆可能增加其他子类型,体育馆可可能增加具体子类。
2.请用C++语言具体实现多线程中lazy式的单例模式(具体的锁机制,可任意)。
3.若已知文科图书馆和理科图书馆各只有唯逐个个,请参考课件中”多个单例类”,实现文科图书馆和理科图书馆的单例化。
4.显然,一套场所组合对应一个工厂,请实现将各工厂也单例化。
5.一个线程对象可以是多种状态(运行,空闲,挂起等),创建线程是非常耗资源的。
线程池可以较好地避免频繁创建线程:一个线程池可以聚合N个线程(线程初始状态为空闲,N=10)。
当客户申请线程时,从线程池中查找空闲的线程,找到后返回该线程;
若没找到,返回异常。
请用多例模式设计线程池类(ThreadPool)
2022/9/30 19:15:42 56KB 吉林大学
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡