Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПИАПС / федоров / Лаб 1 v1.docx
Скачиваний:
62
Добавлен:
17.04.2018
Размер:
930.3 Кб
Скачать

Задание

  1. С использованием одного из языков программирования из множества (C++, C#) реализовать паттерн порождающего проектирования Одиночка (singleton).

  2. С помощью шаблона Абстрактная фабрика решить следующую задачу.

Обеспечить контроль загрузки и готовности к отправлению автобусов и такси. Водитель такси и автобуса имеют права разной категории. Без водителя машина не поедет. Два водителя в одну машину сесть не могут. Без пассажиров машины не поедут. Есть лимит загрузки машин. Для автобуса 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

Соседние файлы в папке федоров