ООП - Должен ли пост удалить себя? - PullRequest
1 голос
/ 26 января 2011

Если у меня есть класс записи (например, запись в блоге), у него будет несколько методов:

  • getReplies ()
  • getViews ()
  • LogView ()

и т.д ...

Но куда уходит deletePost ()? Я предположил бы, что это не должно пойти в почтовый класс?

Ответы [ 3 ]

4 голосов
/ 26 января 2011

deletePost (), скорее всего, будет идти в мастер класса Post (возможно, Wall или BlogPage или что-то в этом роде). Так как стена будет содержать сообщения (и, следовательно, будет иметь некоторый метод addPost (), вы также включите туда и метод deletePost ()!

public class Wall {
     ArrayList<Post> wallposts;
     public addPost(Post newpost) {
          this.wallposts.add(newpost);
     }
     public deletePost(Post p) {
          this.wallposts.remove(p);
     }
}
2 голосов
/ 26 января 2011

Похоже, вы используете шаблон Active Record, тогда, если вы говорите об удалении из базы данных, хорошо иметь метод delete () внутри вашего класса Post.

Используете ли вы DAOкласс, чтобы получить ваши сообщения?тогда удаление должно быть там.

1 голос
/ 26 января 2011

deletePost () должен идти в классе Post Manager. Здесь вы должны вызвать функцию Delete класса Post.

Предполагая, что у вас есть Почтовый менеджер, содержащий все ваши Сообщения, всякий раз, когда вы хотите что-то удалить, Менеджер Почты скажет Почте удалить себя. Это позволяет Почте обрабатывать все о себе (удалять любые ответы на сообщения, комментарии и т. Д.), Вещи, о которых Менеджер почты не должен знать. Используя код

 public class Post{
      .....
      public delete() {
         // Do database stuff here or any clean up that the Post needs to do....
      }
 }


 public class PostManager{
      ArrayList<Post> posts;
      ....
      public deletePost(Post p){
        p.delete();
      } 
  }

РЕДАКТИРОВАТЬ : Чтобы ответить на ваш вопрос, да, пост должен удалить сам. При условии, что Почтовый менеджер сообщает об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...