Как я ограничиваю создание объекта не больше чем 3 в классе Java?

DIR обозначает направление, которое позволяет вам читать файлы каталогов и использовать их в своем проекте django. например, посмотрите на эту строку кода:

'DIRS': [os.path.join(BASE_DIR, 'templates')],  

это позволяет вам тоже читать все файлы в папке с шаблонами в вашем каталоге и отображать ваши шаблоны как yourHTMLfile.html или другие, а также может иметь несколько значений. [ 112]

5
задан Valentin Rocher 15 December 2010 в 15:15
поделиться

5 ответов

public class LimitClass {
    private static List<LimitClass> ObjectPool = new ArrayList<LimitClass>();
    public static int objCount = 0;
    private static Random randomizer = new Random();
    private LimitClass(){
        objCount++;
    }
    public static synchronized LimitClass getLimInstance(){
        if(objCount < 3 ){
            LimitClass lc = new LimitClass();
            ObjectPool.add(lc);
            return lc;
        }
        return ObjectPool.get(randomizer.nextInt()%3);
    }
}

public class LimitObjectCreationTest {
    public static void main(String[] args) {
        LimitClass obj1 = LimitClass.getLimInstance();
        LimitClass obj2 = LimitClass.getLimInstance();
        LimitClass obj3 = LimitClass.getLimInstance();
        LimitClass obj4 = LimitClass.getLimInstance();
        LimitClass obj5 = LimitClass.getLimInstance();
        LimitClass obj6 = LimitClass.getLimInstance();
        System.out.println(obj1);
        System.out.println(obj2);
        System.out.println(obj3);
        System.out.println(obj4);
        System.out.println(obj5);
        System.out.println(obj6);
        System.out.println(obj3);  
    }
}




    LimitClass@1788a393
    LimitClass@460c2da6
    LimitClass@4283a56d
    LimitClass@460c2da6
    LimitClass@1788a393
    LimitClass@4283a56d
    LimitClass@4283a56d
0
ответ дан 18 December 2019 в 07:29
поделиться

Вам нужен модифицированный синглтон. См. Это - тот же OOPS (Шаблоны проектирования)

3
ответ дан 18 December 2019 в 07:29
поделиться

Заводской шаблон - лучший вариант. Или можно использовать статический счетчик. Необходимо позаботиться о безопасности нитей.

1
ответ дан 18 December 2019 в 07:29
поделиться

Создайте экземпляр вашего класса через фабрику (см. Шаблоны проектирования) и ограничьте его до 3 экземпляров, используя простой счетчик.

7
ответ дан 18 December 2019 в 07:29
поделиться

Вы также можете взглянуть на ObjectPool из Apache Commons. Исходный код находится в свободном доступе...

1
ответ дан 18 December 2019 в 07:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: