В чем профит ООП?

Изучит и понял ООП, все круто - нравится и хочется, очень удобно! Вот ток сижу и думаю над его практическим применением, где использовать?) Где вы чаще всего используете класы? Понятно, что есть гуру у которых все приложение на ООП, тут вопрос в том где его лучше использовать новичку?
  • Вопрос задан
  • 332 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Объект роли в проекте - это класс.
Примеры ролей (на примере тостера): пользователь, вопрос, ответ, комментарий, уведомление, тег, лента.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Профит ооп в том, что есть объект и свойства, что внутри знать необязательно, достаточно знать что подавать на вход и что выйдет на выходе, собсно на чем и основаны почти все основные современные фреймворки - берешь и пользуешься. Это как сказать - "брился Жилетом, все зашибись, удобно, качественно, красиво, но я ж сам могу топор выковать и заточить поострее - почти то же самое будет! В чем профит?".
Ответ написан
В объектно-ориентированном программировании есть очень много полезных вещей.
Например наследование.
// describe interfate of engine
interface IEngine {
  public function getAcceleration();
  public function getPower();
}

// abstract implementation of engine
abstract class Engine implements IEngine {

  /**
   * Engine acceleration
   */
  protected $_acceleration = 0;

  /**
   * Engine power (h/p)
   */
  protected $_power = 0; 

  public function getAcceleration() {
    return (int) $this->_acceleration;
  }

  public function getPower() {
    return (int) $this->_power;
  }
}

// extending from engine implementation
class V12 extends Engine{
  protected $_acceleration = 0.0005;
  protected $_power = 300; 
}

// describe interface of the car
interface ICar {
  public function setEngine(IEngine $engine);
  public function accelerate();
}

// abstract implementation of engine
abstract class Car {

  /**
  * Engine of the car
  * @var IEngine
  */
 protected $_engine;

 /**
  * Speed of the car
  * @var Float
  */
 protected $_speed = 0;

 public function setEngine(IEngine $engine){
  $this->_engine = $engine;
 }

 public function accelerate() {
  if( ! ($this->_engine instanceof IEngine)){
    throw new Exception("Wrong type of engine");
  }

  $this->_speed += $this->_engine->getAcceleration();
 }
} 

class MyCar extends Car {
 public function __construct(){
   $this->setEngine(new V12());
 }
}

$car = new MyCar();
$car->accelerate();
Ответ написан
Комментировать
@evgeniy_lm
ООП это в первую очередь простота и скорость разработки
Ответ написан
Комментировать
Pinsky
@Pinsky
Кофеиноникотиновая смесь в backend-код
ООП - это представление реальных и умозрительных объектов в виде формализованных сущностей.
И WEB-разработка без ООП зачастую похожа на ад. Очень рекомендую все таки постараться погрузиться в прекрасный мир ООП)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект