Java实现简单的对象管理器,可以限定对象创建的数量
设计一个类似于数据库连接池的对象管理器-ConnectionManager,负责创建并管理Connection对象(每个对象产生时带有唯一的对象ID号,从1开始编号),客户端程序不能通过new关键字来创建Connection对象,只能通过ConnectionManager的静态方法来获取Connection对象,ConnectionManager中管理的Connnection对象总数不超过10个。
当客户端请求到ConnectionManager中的空闲Connnection对象时,提示“已成功申请到连接对象+对象ID”,否则提示“目前没有空闲连接对象,请稍后再试!”.
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
//写个对象管理器限制创建的对象的数量
class Connection{
private final String id = UUID.randomUUID().toString(); //创建对象则自动生成一个Id
private Connection(){
}
public static Connection getCon(){
return new Connection();
}
public String getId() {
return id;
}
}
public class ConnectionManager {
private static List<Connection> connectionList = new ArrayList<>();
public Connection getConnection() {
if (connectionList.size() < 10) {
Connection con = Connection.getCon();
System.out.println("已成功申请到连接对象" + con.getId());
connectionList.add(con);
return con;
}else{
System.out.println("目前没有空闲连接对象,请稍后再试");
}
return null;
}
public boolean releaseConnection(Connection con){
if (connectionList.contains(con)){
connectionList.remove(con);
return true;
}else{
return false;
}
}
public static void main(String[] args) {
ConnectionManager manager = new ConnectionManager();
List<Connection> connectionList = new ArrayList<>();
for (int i = 0;i < 15;++i){
Connection con = manager.getConnection();
if (con != null) connectionList.add(con);
}
for (int i = 0;i < 3;++i){
Connection con = connectionList.get(i);
boolean flag = manager.releaseConnection(con);
if (flag){
System.out.println("回收对象成功");
}else{
System.out.println("回收对象失败");
}
}
for (int i = 0;i < 15;++i){
Connection con = manager.getConnection();
if (con != null) connectionList.add(con);
}
}
}
更多推荐


所有评论(0)