2011-01-26 51 views
1

如果我有一個職位等級(例如,博客文章),就會有幾個方法:面向對象 - 應該刪除自己嗎?

  • getReplies()
  • getViews()
  • 日誌查看()

etc ...

但是deletePost()去哪了?我會認爲它不應該在課後?

回答

4

deletePost()很可能會出現在Post類的主人(可能是Wall或BlogPage或者這些線上的東西)中。由於華爾街將包含職位(並因此有某種addPost()方法,你也將包括deletePost()方法存在以及下面的例(在粗糙的Java):

public class Wall { 
    ArrayList<Post> wallposts; 
    public addPost(Post newpost) { 
      this.wallposts.add(newpost); 
    } 
    public deletePost(Post p) { 
      this.wallposts.remove(p); 
    } 
} 
2

看起來您正在使用Active Record模式,那麼如果您正在討論從數據庫中刪除,那麼在Post類中使用delete()方法就可以了。

您是否使用DAO類來獲取您的帖子?那麼刪除應該在那裏。

1

的deletePost()應該在郵政經理類中去,在這裏,你應該調用郵政類的刪除功能

假設你有一個郵政經理,其中包含你的所有郵件,每當你想刪除的東西,郵政經理會告訴郵局刪除自己,這樣郵政可以處理郵件中的所有內容(刪除對郵件,評論等的任何回覆),郵政經理不應該知道的事情。使用代碼

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(); 
     } 
    } 

編輯:要回答你的問題,是的,郵政應該刪除自己。郵政經理告訴它。

相關問題