Я хочу, чтобы определенные классы в моем проекте были объединены.И поэтому я не хочу иметь возможность создавать экземпляры этих классов, используя: new SomeClass (), а вместо этого получать новый элемент из пула, используя SomeClass.allocate ().У меня есть такой код для каждого класса, который требует объединения.
public class GameObject
{
// Pooling: Provides a static method for allocation and a method for freeing
private static Pool<GameObject> pool = new Pool<GameObject>();
public static GameObject allocate() { return pool.obtain(); }
public void free() { pool.free(this); }
...
}
Теперь я могу отключить обычный способ создания экземпляров, сделав конструктор по умолчанию закрытым, но проблема заключается в том, что пул должен создавать экземпляр классакогда он создается, а также когда необходимо расширить пул.
Есть ли способ ограничить построение только пулом?