При разработке ООП приложений не обойтись без проектирования.
Хорошим инструментом для проектирования являются абстрактные классы и интерфейсы.
Они помогают нескольким разработчикам совместно писать код для одного проекта, без конфликтов при последующем использовании.
Абстрактные классы и интерфейсы нужны, в основном, для инженеров, которые продумывают структуру приложения, а штатные программисты реализуют нужные функции и процедуры.
Ключевое отличия:
Создание интерфейса:
Создание абстрактного класса:
Реализация интерфейса:
Спасибо за внимание.
Хорошим инструментом для проектирования являются абстрактные классы и интерфейсы.
Они помогают нескольким разработчикам совместно писать код для одного проекта, без конфликтов при последующем использовании.
Абстрактные классы и интерфейсы нужны, в основном, для инженеров, которые продумывают структуру приложения, а штатные программисты реализуют нужные функции и процедуры.
Ключевое отличия:
- интерфейс не может реализовывать логику приложения, он только описывает структуру класса
- интерфейсов можно реализовывать столько, сколько нужно; класс может наследоваться только от одного класса
- абстрактный класс невозможно инициализировать
- абстрактный класс может содержать реализацию методов
Создание интерфейса:
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; }} |