'

Шаблоны проектирования ООП

Понравилась презентация – покажи это...





Слайд 0

Шаблоны проектирования ООП


Слайд 1

Принципы ООП Инкапсуляция Наследование Полиморфизм Абстракция данных


Слайд 2

Паттерны Основные шаблоны (Fundamental) Порождающие шаблоны проектирования (Creational) Структурные шаблоны (Structural) Поведенческие шаблоны (Behavioral) Шаблоны параллельного программирования (Concurrency) MVC Enterprise И тд.


Слайд 3

Основные шаблоны (Fundamental) Delegation pattern/Шаблон делегирования Functional design/Шаблон функционального дизайна Immutable/Неизменяемый объект Interface Property Container


Слайд 4

Порождающие шаблоны проектирования (Creational) Abstract Factory Builder Factory Method Lazy initialization Multiton Object Pool Prototype Resource acquisition is initialization (RAII) Singleton


Слайд 5

Abstract Factory abstract class AbstractFactory { public abstract AbstractProductA CreateProductA(); public abstract AbstractProductB CreateProductB(); } class ConcreteFactory1 : AbstractFactory { public override AbstractProductA CreateProductA() { return new ProductA1(); } public override AbstractProductB CreateProductB() { return new ProductB1(); } } abstract class AbstractProductB { public abstract void Interact(AbstractProductA a); } class Client { private AbstractProductA abstractProductA; private AbstractProductB abstractProductB; public Client(AbstractFactory factory) { abstractProductB = factory.CreateProductB(); abstractProductA = factory.CreateProductA(); } public void Run() { abstractProductB.Interact(abstractProductA); } } public static void Main() { AbstractFactory factory1 = new ConcreteFactory1(); Client c1 = new Client(factory1); c1.Run(); }


Слайд 6

Abstract Factory


Слайд 7

Factory Method using System; class MainApp { static void Main() { Creator[] creators = new Creator[2]; creators[0] = new ConcreteCreatorA(); creators[1] = new ConcreteCreatorB(); foreach(Creator creator in creators) { Product product = creator.FactoryMethod(); Console.WriteLine("Created {0}", product.GetType().Name); } // Wait for user Console.Read(); } } abstract class Product{ } class ConcreteProductA : Product { } class ConcreteProductB : Product { } abstract class Creator { public abstract Product FactoryMethod(); } class ConcreteCreatorA : Creator { public override Product FactoryMethod() { return new ConcreteProductA(); } } class ConcreteCreatorB : Creator { public override Product FactoryMethod() { return new ConcreteProductB(); } }


Слайд 8

Factory Method


Слайд 9

Builder abstract class Builder { public abstract void BuildPartA(); public abstract void BuildPartB(); public abstract Product GetResult(); } class ConcreteBuilder1 : Builder { private readonly Product product = new Product(); public override void BuildPartA() { product.Add("PartA"); } public override void BuildPartB() { product.Add("PartB"); } public override Product GetResult() { return product; } }


Слайд 10

Builder


×

HTML:





Ссылка: