Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Design Patterns via C#.pdf
Скачиваний:
154
Добавлен:
17.03.2016
Размер:
13.25 Mб
Скачать

149

Структура паттерна на языке UML

См. Пример к главе: \011_Flyweight\001_Flyweight

Структура паттерна на языке C#

class FlyweightFactory

{

Hashtable pool = new Hashtable

{

{"1", new ConcreteFlyweight()}, {"2", new ConcreteFlyweight()},

{"3", new ConcreteFlyweight()}

 

 

abstract class Flyweight

 

{

 

};

 

 

 

 

public abstract void Operation(int extrinsicState);

public Flyweight GetFlyweight(string key)

}

 

 

 

 

 

{

 

 

 

 

if (!pool.ContainsKey(key))

 

 

 

 

pool.Add(key, new ConcreteFlyweight());

 

 

 

 

return pool[key] as Flyweight;

 

 

 

 

}

 

 

 

 

}

class ConcreteFlyweight : Flyweight

class UnsharedConcreteFlyweight : Flyweight

{

 

 

{

 

int intrinsicState;

int allState;

 

public override void Operation(int extrinsicState)

public override void Operation(int extrinsicState)

{

 

{

 

intrinsicState = extrinsicState;

allState = extrinsicState;

}

 

}

}

 

 

}

class Program

{

static void Main()

{

int extrinsicState = 0;

Flyweight flyweight = null;

FlyweightFactory factory = new FlyweightFactory();

flyweight = factory.GetFlyweight("1"); flyweight.Operation(extrinsicState);

flyweight = factory.GetFlyweight("10"); flyweight.Operation(extrinsicState);

flyweight = new UnsharedConcreteFlyweight(); flyweight.Operation(extrinsicState);

}

}

См. Пример к главе: \011_Flyweight\001_Flyweight

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]