о ориентированном проектировании и процедурно-ориентированном проектировании

#function #oop #design-patterns

#функция #ооп #шаблоны проектирования

Вопрос:

У меня очень простой вопрос по объектно-ориентированному дизайну. Что лучше объектно-ориентированный дизайн или процедурно-ориентированный дизайн?

Рассмотрим пример.

Я разрабатываю утилиту для отправки почты на основе некоторых параметров. Если я разрабатываю процедурно-ориентированный способ, я буду делать вот так.

 MailUtil.sendMail(String username, String passwork, String subject, String message, String toList, String bccList, ...)
  

Если я спроектирую это как объектно-ориентированный способ, я сделаю, как показано ниже

MailUtil.sendMail(IMailContentProducer)

 definition of IMailContentProducer
interface IMailContentProducer {
     String getUserName(),
     String getPassword(), 
     String getSubject(),
     String getSubject(),
     String getToList(), 
    //etc...
}
  

Ответ №1:

На самом деле это не вопрос «наилучшего способа»,

Это гораздо больше о том, как вы хотите, чтобы ваш код был выполнен, чем о правильном способе его выполнения :

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

ООП: более медленно разрабатываемая, гибкая и легко повторно используемая система.

Комментарии:

1. действительно ли «медленно развивается», когда мы переходим к OOPS? оба варианта занимают одинаковое время: (

2. Время, которое вы тратите на ооп (проектирование, продумывание возможности повторного использования, ограничение зависимости и т.д.), Вы получаете в следующем проекте удобство сопровождения кода, так что … в целом вы выиграете время