题目:效仿示例Lunch.java的形式,创建一个名为ConnectionMannager的类,该类管理一个元素为Connection对象的固定数组。客户端程序员不能直接创建connection对象,而只能通过ConnectionMananger中的某个static方法来获取它们。当ConnectionManager之中不再有对象时,它会返回null引用。在main中检测这些类。
解析:ConnectionMannager对象其实相当于一个connection的池,如果完善一下这个例子,增加把connection放回池的方法的话,那这个类就可以看做是一个简单的静态池。池子中静态方法返回connection对象的时候用到了简单工厂方法。
Connection对象如下:
package ConnectionDemo; public class Connection { String str=""; protected Connection(String str) { this.str=str; } public void describ(){ System.out.println("this is connection "+str); } }
ConnectionMannager对象如下:
package ConnectionDemo; import java.util.ArrayList; public class ConnectionMannager { private static int CONNECTION_NUM=20; private static ArrayList<Connection> connections=new ArrayList<>(); private static ArrayList<Connection> uconnections=new ArrayList<>(); static { for(int i=1;i<=CONNECTION_NUM;i++){ connections.add(new Connection(""+i)); } } private ConnectionMannager() {} public synchronized static Connection getConnection(){ if(connections.size()>0){ Connection temp=connections.get(0); uconnections.add(temp); connections.remove(0); return temp; } return null; } public synchronized static boolean returnConnection(Connection c){ if(uconnections.contains(c)){ connections.add(c); uconnections.remove(c); return true; } return false; } public static void main(String[] args) { for(int i=1;i<=30;i++){ Connection c=getConnection(); c.describ(); returnConnection(c); } } }
增加了returnConnection方法用来模拟把数据返回池的方法。效果良好。
相关推荐
基于计算机软件开发的JAVA编程应用初探.pdf
第1章-计算机基础 第2章-Java初探 第3章-Java程序基础 第5章-方法和数组 第8章-多线程。。。。。
struts编程思想初探,比较适合初学者
基于计算机软件开发的JAVA编程应用初探
历史试题练习题教案学案课件综合科政治教学方法初探-5页.pdf
Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明 Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明 Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明
商业编程-源码-《初探WINDOWS下IME编程》配套源代码.zip
书中全面介绍java语言已经实现的封装、继承和多态性技术,在介绍swing gui的时候提及事件驱动的编程并提供很多练习。在介绍uml和模式的同时进一步介绍了oop。 本书不仅可作为高等院校程序设计课程的入门教材,还可...
苏科版九年级物理《第十三章电路初探第十四章欧姆定律》基础练习题(20211210025415).pdf
IBM之java性能诊断工具初探-IBM Support assitant的使用.docx
商业编程-源码-TIF格式图像文件初探.zip
Java高级编程课程思政案例教学初探.pdf
第8章 Java中的包(Package)命名习惯和注释 193 教学视频:43分钟 8.1 Java中的包(Package) 193 8.1.1 Java中的包 193 8.1.2 在Eclipse中使用包 194 8.1.3 天上掉下个package 197 8.1.4 包带来了什么? 197...
煤炭企业思想政治工作方法初探-安全管理-行业安全-矿山安全.docx
第6章 JAVA初探 第7章 使用JAVA进行面向对象的程序设计 第8章 JAVA语法基础 第9章 Applet图形应用程序和基本绘图 第10章 处理鼠标和键盘事件 第11章 窗口 第12章 使用布局管理器安排窗口 第13章 图形用户界面控件 第...
第8章 Java中的包(Package)命名习惯和注释 193 教学视频:43分钟 8.1 Java中的包(Package) 193 8.1.1 Java中的包 193 8.1.2 在Eclipse中使用包 194 8.1.3 天上掉下个package 197 8.1.4 包带来了什么? 197...
Java教学方法初探
精彩编程与编程技巧-位图文件内部初探 ...
Java高级编程课程思政案例教学初探
ODI_11G初探-简单数据传输.pdf