§ Предпочитайте интерфейсы абстрактным классам. Имеющийся класс несложно подогнать под имеющийся интерфейс. В отличие от абстрактного класса. Интерфейсы.

Презентация:



Advertisements
Похожие презентации
Что такое паттерны (шаблоны) проектирования? Эффективные способы решения характерных задач проектирования Обобщенное описание решения задачи, которое.
Advertisements

§11 Переопределяйте clone() избирательно. interface Cloneable –Особенность Object.clone() –Уникальность интерфейса.
§ 20 Предпочитайте иерархию классов вместо помеченных классов.
Наследование и полиморфизм. «Быть» или «Иметь» а так же «Точно» или «Как получится»
Фабрика
Полиморфизм. Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Delphi. 11 класс.. Познакомиться с понятиями : Инкапсуляция Интерфейс объекта Классы, экземпляр класса Наследование, иерархия полиморфизм.
Программная иженерия Андрей Дмитриев ©
ОБЪЕКТНО- ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП) 1.
Классы и объекты Лекция 2. Классификатор Класс Интерфейс Экземпляр класса Ассоциация Квалификатор Класс ассоциации Обобщение Украшение Тип данных Пакеты.
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Принципы объектно-ориентированного программирования Объектная модель Наследование Инкапсуляция Полиморфизм.
OOП Инна Исаева. Подпрограмма – это большая программа, разделённая на меньшие части. В программе одна из подпрограмм является главной. Её задача состоит.
1 Java 6. ИНТЕРФЕЙСЫ И ВНУТРЕННИЕ КЛАССЫ. 2 Интерфейсы Не являются классами Ни один из объявленных методов не может быть реализован внутри интерфейса.
§16 Предпочитайте компановку классов – наследованию.
Наследование. Наследование – это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся.
§17 Проектируйте и документируйте наследование или запрещайте его.
Наследование Наследование – это отношение является между классами. class Person { string first_name; int birth_year;... } class Student : Person { float.
Лабораторная работа 1. Целеориентированный подход В данной лабораторной работе рассматривается целеориентированный под- ход к разработке прототипа программного.
Объекто-ориентированное проектирование Паттерны проектирования. 28 февраля 2008 г. 4 курс Технологии программирования.
Транксрипт:

§ Предпочитайте интерфейсы абстрактным классам

Имеющийся класс несложно подогнать под имеющийся интерфейс. В отличие от абстрактного класса. Интерфейсы идеально подходят для создания дополнений (mixin). Интерфейсы позволяют создавать структуры типов без иерархии.

Интерфейсы позволяют безопасно и сильно наращивать функциональность при помощи wrapper классов. Вы можете объединить преимущества интерфейсов и абстрактных классов, сопроводив каждый предоставляемый вами нетривиальный интерфейс абстрактным классом со скелетом реализации. Интерфейс будет определять тип, а вся работа по его воплощению ляжет на скелет реализации. –По соглашению скелеты реализации называются AbstractInterface. Например: AbstractCollection, AbstractSet, AbstractList

Static фабрика, содержащая реализацию List

Эмуляция множественного наследования через поля класса.

SimpleImplementation – аналог skeleton. Миниммально работающая реализация. (AbstractMap.SimpleEntry() )

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