Задание
С
использованием одного из языков
программирования из множества (C++, C#)
реализовать паттерн порождающего
проектирования Одиночка (singleton).
С
помощью шаблона Абстрактная фабрика
решить следующую задачу.
Обеспечить
контроль загрузки и готовности к
отправлению автобусов и такси. Водитель
такси и автобуса имеют права разной
категории. Без водителя машина не поедет.
Два водителя в одну машину сесть не
могут. Без пассажиров машины не поедут.
Есть лимит загрузки машин. Для автобуса
30 чел. Для такси -4 чел.
Рекомендуется
для водителя применить паттерн синглтон.

Пример программной реализации реализация паттерна (c#)
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
Lab2_Singleton
{
class
Program
{
static
SingletoneSample
instance;
static
void
Main(string[]
args)
{
instance
= SingletoneSample.Instance();
instance.IntProperty
= 3;
instance.StringProperty
= "start";
Console.WriteLine("Singleton
id: {0}; properties: {1}, {2}",
instance.InstanceId, instance.IntProperty, instance.StringProperty);
Console.WriteLine("Try
to change singletone instance");
instance
= SingletoneSample.Instance();
instance.IntProperty
= 2;
instance.StringProperty
= "stop";
Console.WriteLine("Singleton
id: {0}; properties: {1}, {2}",
instance.InstanceId, instance.IntProperty, instance.StringProperty);
Console.Read();
}
}
public
class
SingletoneSample
{
private
static
SingletoneSample
_instance;
private
Guid
_instanceId;
public
Guid
InstanceId
{
get
{return
_instanceId; }
}
public
string
StringProperty { get;
set;
}
public
int
IntProperty { get;
set;
}
private
SingletoneSample()
{
_instanceId
= Guid.NewGuid();
}
public
static
SingletoneSample
Instance()
{
if
(_instance == null)
{
_instance = new
SingletoneSample();
}
return
_instance;
}
}
}
12