design patterns for force.com

13
DESIGN PATTERNS Prepered by Artem Levcheko

Upload: -

Post on 20-Aug-2015

152 views

Category:

Education


3 download

TRANSCRIPT

DESIGN PATTERNS

Prepered by Artem Levcheko

•••••••••••••••••••••••••••••••••••••••••••••

Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку.

(с) Мартин Фаулер

Шаблон проектирования или паттерн (анг. design pattern) — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.

Бальзам на душу программиста. Зачем? Почему? Какие?

Сколько у автомобиля колес?4 Колеса - это шаблон проектирования сформированный временем!

А ты используешь паттерн MVC ?

Порождающие (Creational)

Структурирующие(Structural)

Поведенческие (Behavioral)

Классические паттерны ООП в метафорах. Виды. Примеры.

Вкусно, мощно, эстетически красивее, понятнее, правильнее

Пораждающие паттерны.

шаблоны, по которым можно создать новый автомобиль и как это лучше сделать.

Singleton

cистема независима от способа создания, композиции и представления объектов

абстрагируют процесс инстанцирования.

У класса есть только один экземпляр, и предоставляется к нему глобальная точка доступа.

+ контролируемый доступ к единственному экземпляру.

- Вредность глобальных переменных. Немасшатибруемый проект.

Поведенческие паттерны.

Strategy

определяют алгоритмы и способы реализации взаимодействия различных объектов и классов.

Используется для выбора различных путей получения результата.

Отделение процедуры выбора алгоритма от его реализации.

+ интерфейс кастомизации не совпадает с публичным интерфейсом и может быть куда более удобным

- требуется проектировать класс с возможностью регистрации стратегий.

Струтурирующие паттерны.

Facade

помогают внести порядок и научить разные объекты более правильно взаимодействовать друг с другом.

делать сложные вещи простыми.

унифицированный интерфейс с набором разрозненных реализаций или интерфейсов.

А всего-то надо повернуть ключ зажигания!

Автомобиль

подать питание с аккумулятора подать питание на инжектор

включить генератор

Антипаттерны. Фантазии изобретательных программистов.

 шаблоны ошибок, которые совершаются при решении различных задач. 

Copy and Paste Programming

Spaghetti code

Golden hammer

Magic numbers Hard codeSoft code

Accidental complexity

Boat anchor

Reinventing the wheel

Reinventing the square wheel

Lava flow

Programming by permutation

Blind faith

God Object

Причины использовать паттерны

• Описывает решение целого класса абстрактных проблем.• Полиморфизм (использовать архитекртурное решение повторно).• Помогает решать новую задачу не с нуля.• Улучшить качество документации и сопровождения

существующих систем.• Антипаттернотерапия

Интересно?Что почитать?

3) http://habrahabr.ru/post/175465/

1) Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес Приемы объектно-ориентированного проектирования. Паттерны проектирования

2) Цикл полезных статей на habre: http://habrahabr.ru/post/84706/