эй, привет, я хочу, чтобы ограничение на создание объекта означало, что класс может иметь не более 4 объектов не более того, как это сделать?OOPS (шаблоны проектирования)
ответ
Один подход заключается в использовании фабрики объектов, которая создает не более 4 экземпляров. Это интересная потребность ... Может ли пул объектов обслуживать одну и ту же потребность?
+1 для ограниченного пула фабрик и объектов. – LiraNuna
Класс Factory с пулом объектов или кешем был бы здесь. –
Вы можете подсчитать количество экземпляров, созданных с использованием свойства static class для хранения счета. Это можно сделать либо в конструкторе класса, либо вы можете использовать шаблон фабрики. Немного сложно ответить на это более точно, не зная целевого языка.
Попробуйте изменить Singleton pattern. Вы можете использовать переменную count. Вам нужно, чтобы Constructor был закрыт, чтобы иметь контроль над no. случаев.
Этот вариант называется MultiTon :) – malaverdiere
@mlaverd - Согласен :) – Padmarag
Самый простой способ сделать это - иметь атрибут уровня класса, называемый «count», и в вашем конструкторе просто убедитесь, что «count» не превышает определенное число.
//pseudocode
class foo
static count = 0
def constructor()
if count < 4
//create object
else
//there are too many!
Одним из способов достижения является шаблоном Singleton Design, Всякий раз, когда мы делаем вызов для создания экземпляра, проверьте количество экземпляра, которые уже созданы, если количество экземпляра уже достигло 4, а затем использовать тот же экземпляр для вашего приложения. У вас есть счет, Creat Static Int Counter = 0; и продолжайте увеличивать его, чтобы получить результаты.
Это короткий код snippest, который даст результат, полученный выше в C#
sealed class clsInstance
{
public static int count = 0;
private static readonly clsInstance inst = new clsInstance();
clsInstance()
{
}
public static clsInstance Inst
{
get
{
if (count < 4)
{
Console.WriteLine("object : " + count);
count++;
return inst;
}
return null;
}
}
}
class MainClass
{
public static void Main(String[] args)
{
clsInstance c1 = clsInstance.Inst;
clsInstance c2 = clsInstance.Inst;
clsInstance c3 = clsInstance.Inst;
clsInstance c4 = clsInstance.Inst;
Console.ReadLine();
clsInstance c5 = clsInstance.Inst;
Console.ReadLine();
}
}
- 1. шаблоны проектирования python
- 2. Содержание Онтология Шаблоны проектирования
- 3. Шаблоны проектирования пакетной обработки
- 4. Требуются некоторые шаблоны проектирования
- 5. Шаблоны проектирования XSD
- 6. шаблоны проектирования наследования
- 7. Насколько важны шаблоны проектирования?
- 8. Языковые интегрированные шаблоны проектирования
- 9. Шаблоны проектирования Java: Фасад
- 10. шаблоны проектирования linq
- 11. Применимые шаблоны проектирования
- 12. Модульность - шаблоны проектирования - Архитектура
- 13. Шаблоны проектирования для многопоточности
- 14. Php шаблоны проектирования
- 15. Неправильные шаблоны проектирования
- 16. J2ME - BlackBerry - шаблоны проектирования
- 17. Шаблоны проектирования проверки данных
- 18. Автоматизированные шаблоны проектирования C++
- 19. FileSystemWatcher и шаблоны проектирования
- 20. Шаблоны проектирования и Scala
- 21. Шаблоны проектирования контроля доступа
- 22. PHP шаблоны проектирования memcache
- 23. Заводские шаблоны проектирования моделей
- 24. Шаблоны проектирования сообщений
- 25. Шаблоны проектирования Progress Bar?
- 26. Шаблоны проектирования SQL
- 27. создание декораторов. шаблоны проектирования
- 28. OOPS и ADO.Net
- 29. Как использовать Alamofire? (шаблоны проектирования)
- 30. Шаблоны проектирования данных/баз данных?
Это зависит от языка. На каком языке вас интересует? – 2010-02-24 05:14:05
Стоит прочитать осуждение Стива Йегге шаблона Синглтона и посмотреть, не распространяется ли какое-либо из этих предупреждений: http://steve.yegge.googlepages.com/singleton-considered-stupid Клиенты вашего класса не должны знать, что существуют ограниченные экземпляры класса. Во-первых, это затрудняет модульный тест. – RossFabricant
Что вы пытаетесь достичь в мире? –