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

Нажмите для полного просмотра!
Патерни проектування, слайд №1Патерни проектування, слайд №2Патерни проектування, слайд №3Патерни проектування, слайд №4Патерни проектування, слайд №5Патерни проектування, слайд №6Патерни проектування, слайд №7Патерни проектування, слайд №8Патерни проектування, слайд №9Патерни проектування, слайд №10Патерни проектування, слайд №11Патерни проектування, слайд №12Патерни проектування, слайд №13Патерни проектування, слайд №14Патерни проектування, слайд №15Патерни проектування, слайд №16Патерни проектування, слайд №17Патерни проектування, слайд №18Патерни проектування, слайд №19Патерни проектування, слайд №20Патерни проектування, слайд №21Патерни проектування, слайд №22Патерни проектування, слайд №23Патерни проектування, слайд №24Патерни проектування, слайд №25Патерни проектування, слайд №26Патерни проектування, слайд №27Патерни проектування, слайд №28Патерни проектування, слайд №29Патерни проектування, слайд №30Патерни проектування, слайд №31Патерни проектування, слайд №32Патерни проектування, слайд №33Патерни проектування, слайд №34Патерни проектування, слайд №35Патерни проектування, слайд №36Патерни проектування, слайд №37Патерни проектування, слайд №38Патерни проектування, слайд №39Патерни проектування, слайд №40Патерни проектування, слайд №41Патерни проектування, слайд №42Патерни проектування, слайд №43Патерни проектування, слайд №44Патерни проектування, слайд №45Патерни проектування, слайд №46Патерни проектування, слайд №47Патерни проектування, слайд №48Патерни проектування, слайд №49Патерни проектування, слайд №50Патерни проектування, слайд №51Патерни проектування, слайд №52Патерни проектування, слайд №53Патерни проектування, слайд №54Патерни проектування, слайд №55Патерни проектування, слайд №56Патерни проектування, слайд №57Патерни проектування, слайд №58Патерни проектування, слайд №59

Содержание

Вы можете ознакомиться и скачать презентацию на тему Патерни проектування. Доклад-сообщение содержит 59 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Патерни проектування
2005-2012
Описание слайда:
Патерни проектування 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.
Описание слайда:
Що таке патерн (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 с.
Описание слайда:
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
Описание слайда:
http://www.dofactory.com

Слайд 5





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

Слайд 6





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

Слайд 7





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

Слайд 8





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

Слайд 9


Патерни проектування, слайд №9
Описание слайда:

Слайд 10





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

Слайд 11





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

Слайд 12





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

Слайд 13





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

Слайд 14





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

Слайд 15





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

Слайд 16





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

Слайд 17





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

Слайд 18





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

Слайд 19





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

Слайд 20





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

Слайд 21





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

Слайд 22





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

Слайд 23





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

Слайд 24





Adapter (data & object factory™, dofactory.com)
Описание слайда:
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();
  }
}
Описание слайда:
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
Описание слайда:
Adapter

Слайд 27





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

Слайд 28





Proxy (data & object factory™, dofactory.com)
Виступає сурогатом (заступником) іншого об'єкта, “контролюючи” доступ до нього.
Описание слайда:
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();
    }  
  }
Описание слайда:
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
Декоратор – патерн, що структурує об'єкти. Динамічно додаються об'єкту нові обов'язки. Є гнучкою альтернативою породженню підкласів з метою розширення функціональності.
Описание слайда:
Decorator Декоратор – патерн, що структурує об'єкти. Динамічно додаються об'єкту нові обов'язки. Є гнучкою альтернативою породженню підкласів з метою розширення функціональності.

Слайд 31





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

Слайд 32





Decorator (data & object factory™, dofactory.com)
Описание слайда:
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();
  }
}
Описание слайда:
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)
Описание слайда:
Decorator. Приклад (2/2)

Слайд 35





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

Слайд 36


Патерни проектування, слайд №36
Описание слайда:

Слайд 37





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

Слайд 38





Composite (data & object factory™, dofactory.com)
Описание слайда:
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 );
  }
}
Описание слайда:
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)
Описание слайда:
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();
      }
}
Описание слайда:
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
Описание слайда:
Bridge

Слайд 43





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

Слайд 44





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

Слайд 45





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

Слайд 46





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

Слайд 47





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

Слайд 48





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

Слайд 49





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

Слайд 50





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

Слайд 51





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

Слайд 52





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

Слайд 53





Observer (data & object factory™, dofactory.com)
Описание слайда:
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();
  }
}
Описание слайда:
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
Описание слайда:
Borland Developer Studio 2006

Слайд 57





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

Слайд 58





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

Слайд 59





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



Похожие презентации
Mypresentation.ru
Загрузить презентацию