如果我有一個職位等級(例如,博客文章),就會有幾個方法:面向對象 - 應該刪除自己嗎?
- getReplies()
- getViews()
- 日誌查看()
etc ...
但是deletePost()去哪了?我會認爲它不應該在課後?
如果我有一個職位等級(例如,博客文章),就會有幾個方法:面向對象 - 應該刪除自己嗎?
etc ...
但是deletePost()去哪了?我會認爲它不應該在課後?
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);
}
}
看起來您正在使用Active Record模式,那麼如果您正在討論從數據庫中刪除,那麼在Post類中使用delete()方法就可以了。
您是否使用DAO類來獲取您的帖子?那麼刪除應該在那裏。
的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();
}
}
編輯:要回答你的問題,是的,郵政應該刪除自己。郵政經理告訴它。