Патерни проектування презентация

Содержание


Презентации» Информатика» Патерни проектування
Патерни проектування
 2005-2012Що таке патерн (pattern)?
 Alexander C., Ishikawa S., Silverstein M. AGoF (Gang of Four).
 Gamma E., Johnson R., Helm R., Vlissideshttp://www.dofactory.comhttp://sourcemaking.com/design_patternshttp://www.citforum.ru/SE/project/pattern/  (1/2)http://www.citforum.ru/SE/project/pattern/  (2/2)GRASP (General Responsibility Assignment Software Patterns)Анти-патерниСтруктура патернів GoF
 У загальному випадку опис патерну складається з чотирьохСтруктура патернів
 3. Розв'язок . Абстрактний опис задачі проектування і того,До класифікації патернів
 Породжуючі патерни – пов'язані з процесом створення об'єктів.
Простір патернів проектування
 Cтруктурні патерни рівня об'єкта компонують об'єкти для одержанняSingleton (data & object factory™, dofactory.com)
 Гарантує, що є тільки одинSingleton (data & object factory™, dofactory.com)Adapter
 http://sourcemaking.com/design_patternsAdapter
 Дозволяє перейти від одного інтерфейсу (у класі чи в об'єкті)AdapterAdapter (GoF)Borland Developer Studio 2006. AdapterBorland Developer Studio 2006. AdapterBorland Developer Studio 2006Adapter (data & object factory™, dofactory.com)Adapter (data & object factory™, dofactory.com)
 			// "Adaptee"
 class Adaptee
 {
AdapterProxyProxy (data & object factory™, dofactory.com)
 Виступає сурогатом (заступником) іншого об'єкта,Proxy (data & object factory™, dofactory.com)
     Decorator
 Декоратор – патерн, що структурує об'єкти. Динамічно додаються об'єкту новіDecoratorDecorator (data & object factory™, dofactory.com)Decorator. Приклад (1/2)  (data & object factory™, dofactory.com)
 public classDecorator. Приклад (2/2)Spring-проект  dekorComposite (композитор, компоновник)
 Групує об'єкти в деревоподібні структури для представлення ієрархійComposite (data & object factory™, dofactory.com)Composite (data & object factory™, dofactory.com)
 class Leaf : Component
 {publicStrategy (dofactory.com)Strategy (dofactory.com)
 class ConcreteStrategyB : Strategy
  {
   publicBridgeBridgeBridgeBridge (GoF)Bridge (data & object factory™, dofactory.com)Bridge. “Починати з тих шаблонів, що створюють контекст для інших” (К.Александер).Façade (data & object factory™, dofactory.com)Observer (Спостерігач)
 Визначає між об'єктами відношення типу один (видавець) - доObserverObserverObserverObserver (data & object factory™, dofactory.com)Observer (data & object factory™, dofactory.com)
 ///  Client test
 publicДодатокBorland Developer Studio 2006Borland Developer Studio 2006Borland Developer Studio 2006Borland Developer Studio 2006



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Патерни проектування 2005-2012


Слайд 2
Описание слайда:
Що таке патерн (pattern)? Alexander C., Ishikawa S., Silverstein M. A Pattern Language: Towns/ Buildings/ Construction, NY, 1977. Alexander C., Ishikawa S., Silverstein M. The Timeless Way of Buildings, NY, 1979.

Слайд 3
Описание слайда:
GoF (Gang of Four). Gamma E., Johnson R., Helm R., Vlissides J. Design Patterns. Elements of Reusable Object-Oriented Software. — Addison-Wesley, 1995. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб: Питер, 2001. — 368 с.

Слайд 4
Описание слайда:
http://www.dofactory.com

Слайд 5
Описание слайда:
http://sourcemaking.com/design_patterns

Слайд 6
Описание слайда:
http://www.citforum.ru/SE/project/pattern/ (1/2)

Слайд 7
Описание слайда:
http://www.citforum.ru/SE/project/pattern/ (2/2)

Слайд 8
Описание слайда:
GRASP (General Responsibility Assignment Software Patterns)

Слайд 9
Описание слайда:

Слайд 10
Описание слайда:
Анти-патерни

Слайд 11
Описание слайда:
Структура патернів GoF У загальному випадку опис патерну складається з чотирьох основних розділів: 1. Ім'я. Пославшись на нього, можна одразу описати як проблему проектування, так і її вирішення (словник патернів). Отже, проектування ПС можна проводити більш високому рівні абстракції. Патерн — це одне з ключових понять архітектури ПС. Знаходження виразних імен було однією з найскладніших задач при складанні каталогу GoF (Gang of Four). 2. Задача. Опис того, коли варто застосовувати патерн. Необхідно сформулювати задачу та її контекст. Тут може описуватися конкретна проблема проектування, може включатися перелік умов, при виконанні яких має сенс застосовувати даний патерн. (Важливо знати, де і при яких умовах можна скористатись патерном.)

Слайд 12
Описание слайда:
Структура патернів 3. Розв'язок . Абстрактний опис задачі проектування і того, як вона може бути розв'язана за допомогою деякого узагальненого сполучення класів чи об'єктів. 4. Результати. Описуються наслідки застосування патерну, різного роду компроміси, аналізується вибір мови реалізації. Хоча при опису проектних рішень про наслідки часто не згадують, знати про них необхідно, щоб можна було оцінити переваги і недоліки даного патерну у порівнянні з іншими. Оскільки повторне використання є важливим фактором для ПС, то до результатів варто відносити вплив на гнучкість, масштабування, портабельність розроблюваної системи.

Слайд 13
Описание слайда:
До класифікації патернів Породжуючі патерни – пов'язані з процесом створення об'єктів. Структурні патерни – ґрунтуються на композиціях (структурних об'єднаннях) об'єктів чи класів. (Теза: замість успадкування – композиції). Патерни поведінки – характеризуються взаємодією об'єктів між собою (такі патерни можна розглядати як кооперації UML).

Слайд 14
Описание слайда:
Простір патернів проектування Cтруктурні патерни рівня об'єкта компонують об'єкти для одержання нової функціональності. Додаткова гнучкість пов'язана з можливістю задавати композицію об'єктів під час виконання програми, що неможливо для статичної композиції класів.

Слайд 15
Описание слайда:
Singleton (data & object factory™, dofactory.com) Гарантує, що є тільки один екземпляр класу, і надає глобальну точку доступу до такого екземпляра.

Слайд 16
Описание слайда:
Singleton (data & object factory™, dofactory.com)

Слайд 17
Описание слайда:
Adapter http://sourcemaking.com/design_patterns

Слайд 18
Описание слайда:
Adapter Дозволяє перейти від одного інтерфейсу (у класі чи в об'єкті) до іншого з метою забезпечити спільну роботу (класів чи об'єктів), яка була б неможлива без даного патерна через несумісність інтерфейсів.

Слайд 19
Описание слайда:
Adapter

Слайд 20
Описание слайда:
Adapter (GoF)

Слайд 21
Описание слайда:
Borland Developer Studio 2006. Adapter

Слайд 22
Описание слайда:
Borland Developer Studio 2006. Adapter

Слайд 23
Описание слайда:
Borland Developer Studio 2006

Слайд 24
Описание слайда:
Adapter (data & object factory™, dofactory.com)

Слайд 25
Описание слайда:
Adapter (data & object factory™, dofactory.com) // "Adaptee" class Adaptee { // Methods public void SpecificRequest() { Console.WriteLine("Called SpecificRequest()" ); } } /// Client test public class Client { public static void Main(string[] args) { // Create adapter and place a request Target t = new Adapter(); t.Request(); } }

Слайд 26
Описание слайда:
Adapter

Слайд 27
Описание слайда:
Proxy

Слайд 28
Описание слайда:
Proxy (data & object factory™, dofactory.com) Виступає сурогатом (заступником) іншого об'єкта, “контролюючи” доступ до нього.

Слайд 29
Описание слайда:
Proxy (data & object factory™, dofactory.com) // "Proxy" class Proxy : Subject { RealSubject realSubject; public override void Request() { // Use 'lazy initialization' if (realSubject == null) { realSubject = new RealSubject(); } realSubject.Request(); } }

Слайд 30
Описание слайда:
Decorator Декоратор – патерн, що структурує об'єкти. Динамічно додаються об'єкту нові обов'язки. Є гнучкою альтернативою породженню підкласів з метою розширення функціональності.

Слайд 31
Описание слайда:
Decorator

Слайд 32
Описание слайда:
Decorator (data & object factory™, dofactory.com)

Слайд 33
Описание слайда:
Decorator. Приклад (1/2) (data & object factory™, dofactory.com) public class Client { public static void Main ( string[] args ) { ConcreteComponent c = new ConcreteComponent(); ConcreteDecoratorA d1 = new ConcreteDecoratorA(); ConcreteDecoratorB d2 = new ConcreteDecoratorB(); // Link decorators d1.SetComponent( c ); d2.SetComponent( d1 ); d2.Operation(); } }

Слайд 34
Описание слайда:
Decorator. Приклад (2/2)

Слайд 35
Описание слайда:
Spring-проект dekor

Слайд 36
Описание слайда:

Слайд 37
Описание слайда:
Composite (композитор, компоновник) Групує об'єкти в деревоподібні структури для представлення ієрархій типу “частина-ціле”. Дозволяє уніфікувати дії як з листками, так і з будь-якими групами піддерев.

Слайд 38
Описание слайда:
Composite (data & object factory™, dofactory.com)

Слайд 39
Описание слайда:
Composite (data & object factory™, dofactory.com) class Leaf : Component {public Leaf( string name ) : base( name ) {} // Constructor public override void Add( Component c ) { Console.WriteLine("Cannot add to a leaf"); } public override void Remove( Component c ) { Console.WriteLine("Cannot remove from a leaf"); } public override void Display( int depth ) { Console.WriteLine( new String( '-', depth ) + name ); } } public class Client { public static void Main( string[] args ) { // Create a tree structure Composite root = new Composite( "root" ); root.Add( new Leaf( "Leaf A" )); root.Add( new Leaf( "Leaf B" )); Composite comp = new Composite( "Composite X" ); comp.Add( new Leaf( "Leaf XA" ) ); comp.Add( new Leaf( "Leaf XB" ) ); root.Add( comp ); root.Add( new Leaf( "Leaf C" )); // Recursively display nodes root.Display( 1 ); } }

Слайд 40
Описание слайда:
Strategy (dofactory.com)

Слайд 41
Описание слайда:
Strategy (dofactory.com) class ConcreteStrategyB : Strategy { public override void AlgorithmInterface() { Console.WriteLine( "CalledConcreteStrategyB.”+ ”AlgorithmInterface()"); } } class Context { private Strategy _strategy; // Constructor public Context(Strategy strategy) { this._strategy = strategy; } public void ContextInterface() { _strategy.AlgorithmInterface(); } }

Слайд 42
Описание слайда:
Bridge

Слайд 43
Описание слайда:
Bridge

Слайд 44
Описание слайда:
Bridge

Слайд 45
Описание слайда:
Bridge (GoF)

Слайд 46
Описание слайда:
Bridge (data & object factory™, dofactory.com)

Слайд 47
Описание слайда:
Bridge. “Починати з тих шаблонів, що створюють контекст для інших” (К.Александер).

Слайд 48
Описание слайда:
Façade (data & object factory™, dofactory.com)

Слайд 49
Описание слайда:
Observer (Спостерігач) Визначає між об'єктами відношення типу один (видавець) - до - багатьох (передплатників), так що при зміні стану одного об'єкта (видавця) всі підлеглі (передплатники) одержують повідомлення й автоматично оновлюють дані. Відомий також під іменами Dependents (підлеглі), Publish-Subscribe (видавець- передплатник).

Слайд 50
Описание слайда:
Observer

Слайд 51
Описание слайда:
Observer

Слайд 52
Описание слайда:
Observer

Слайд 53
Описание слайда:
Observer (data & object factory™, dofactory.com)

Слайд 54
Описание слайда:
Observer (data & object factory™, dofactory.com) /// Client test public class Client { public static void Main( string[] args ) { // Configure Observer // structure ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver( s, "X" ) ); s.Attach( new ConcreteObserver( s, "Y" ) ); s.Attach( new ConcreteObserver( s, "Z" ) ); // Change subject, notify // observers s.SubjectState = "ABC"; s.Notify(); } }

Слайд 55
Описание слайда:
Додаток

Слайд 56
Описание слайда:
Borland Developer Studio 2006

Слайд 57
Описание слайда:
Borland Developer Studio 2006

Слайд 58
Описание слайда:
Borland Developer Studio 2006

Слайд 59
Описание слайда:
Borland Developer Studio 2006


Скачать презентацию на тему Патерни проектування можно ниже:

Похожие презентации