При разработке ООП приложений не обойтись без проектирования.
Хорошим инструментом для проектирования являются абстрактные классы и интерфейсы.
Они помогают нескольким разработчикам совместно писать код для одного проекта, без конфликтов при последующем использовании.
Абстрактные классы и интерфейсы нужны, в основном, для инженеров, которые продумывают структуру приложения, а штатные программисты реализуют нужные функции и процедуры.
Ключевое отличия:
Создание интерфейса:
Создание абстрактного класса:
Реализация интерфейса:
Спасибо за внимание.
Хорошим инструментом для проектирования являются абстрактные классы и интерфейсы.
Они помогают нескольким разработчикам совместно писать код для одного проекта, без конфликтов при последующем использовании.
Абстрактные классы и интерфейсы нужны, в основном, для инженеров, которые продумывают структуру приложения, а штатные программисты реализуют нужные функции и процедуры.
Ключевое отличия:
- интерфейс не может реализовывать логику приложения, он только описывает структуру класса
- интерфейсов можно реализовывать столько, сколько нужно; класс может наследоваться только от одного класса
- абстрактный класс невозможно инициализировать
- абстрактный класс может содержать реализацию методов
Создание интерфейса:
1 2 3 4 5 6 7 8 9 | namespace Application\\\\Interfaces; interface Fruit { protected $name ; function getName(); function setName( $name ); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 | namespace Application\\\\Classes; class Fruit { protected $name ; function getName() { return $this ->name; } abstract function setName( $name ); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | namespace Application\\\\Fruits; class Apple implements Fruit { protected $name ; function getName() { return $this ->name; } function setName( $name ) { $this ->name = $name ; } } |