java 一个类的实例化_Java:仅允许一个类进行实例化

你可以看到两个选项:要么使它成为池的内部类,要么使allocate方法包为private,并将它放在与池相同的包中.

编辑:啊.只需将构造函数设为私有,然后覆盖池用于创建新实例的任何方法.作为使用上面框架的(粗略)示例:

public abstract class Pool

{

public abstract T getNewObject();

public T obtain(){ return getNewObject(); }

public void free(T obj) {}

}

public class GameObject

{

// Pooling: Provides a static method for allocation and a method for freeing

private static Pool pool = new Pool(){

public GameObject getNewObject(){ return new GameObject(); }

};

public static GameObject allocate() { return pool.obtain(); }

private GameObject(){}

public void free() { pool.free(this); }

}

游戏对象的构造函数很高兴其他任何人都无法访问.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值