Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OOP-帖子应该删除自己吗?_Oop_Design Patterns - Fatal编程技术网

OOP-帖子应该删除自己吗?

OOP-帖子应该删除自己吗?,oop,design-patterns,Oop,Design Patterns,如果我有一个post类(例如,一篇博客文章),它将有几个方法: getReplies() getViews() 日志视图() 等等 但是deletePost()去了哪里?我认为它不应该放在post类中?看起来您使用的是活动记录模式,如果您要从数据库中删除,那么在post类中使用delete()方法也可以 您是否使用DAO类来获取您的帖子?那么delete应该在那里。看起来您使用的是活动记录模式,那么如果您正在谈论从数据库中删除,那么在Post类中使用delete()方法就可以了 您是否使用D

如果我有一个post类(例如,一篇博客文章),它将有几个方法:

  • getReplies()
  • getViews()
  • 日志视图()
等等


但是deletePost()去了哪里?我认为它不应该放在post类中?

看起来您使用的是活动记录模式,如果您要从数据库中删除,那么在post类中使用delete()方法也可以


您是否使用DAO类来获取您的帖子?那么delete应该在那里。

看起来您使用的是活动记录模式,那么如果您正在谈论从数据库中删除,那么在Post类中使用delete()方法就可以了

您是否使用DAO类来获取您的帖子?然后删除应该在那里。

deletePost()很可能会进入Post类的主类(可能是Wall或BlogPage或类似的内容)。由于墙将包含post(从而具有某种addPost()方法),因此也将包含deletePost()方法!下面的示例(用粗略的Java编写):

公共类墙{
ArrayList墙柱;
公共addPost(Post newpost){
this.wallposts.add(newpost);
}
公共邮政(邮政p){
此。墙柱。移除(p);
}
}
deletePost()最有可能成为Post类的主类(可能是Wall或BlogPage或类似的内容)。由于Wall将包含Post(从而具有某种addPost()方法,因此您还将在其中包含deletePost()方法!示例(粗略Java)如下:

公共类墙{
ArrayList墙柱;
公共addPost(Post newpost){
this.wallposts.add(newpost);
}
公共邮政(邮政p){
此。墙柱。移除(p);
}
}
deletePost()应该放在Post Manager类中。在这里,您应该调用Post类的Delete函数

假设您有一个包含您所有帖子的帖子管理器,每当您想要删除某个内容时,帖子管理器都会告诉帖子删除自己。这允许帖子处理关于自己的所有事情(删除对帖子的任何回复、评论等),以及帖子管理器不应该知道的事情。使用代码

 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();
      } 
  }
公共类职位{
.....
公共删除(){
//在这里做数据库的事情,或者做文章需要做的任何清理。。。。
}
}
公营邮政经理{
ArrayList职位;
....
公共邮政(邮政p){
p、 删除();
} 
}
编辑:要回答您的问题,是的,帖子应该自己删除。前提是帖子管理员告诉它。

deletePost()应该放在帖子管理员类中。在这里,您应该调用帖子类的delete函数

假设您有一个包含您所有帖子的帖子管理器,每当您想要删除某个内容时,帖子管理器都会告诉帖子删除自己。这允许帖子处理关于自己的所有事情(删除对帖子的任何回复、评论等),以及帖子管理器不应该知道的事情。使用代码

 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();
      } 
  }
公共类职位{
.....
公共删除(){
//在这里做数据库的事情,或者做文章需要做的任何清理。。。。
}
}
公营邮政经理{
ArrayList职位;
....
公共邮政(邮政p){
p、 删除();
} 
}
编辑:要回答您的问题,是的,帖子应该删除自己。前提是帖子经理告诉它