更好的是,管理员和访客的单一课程或2个公司和管理公司?

时间:2012-08-15 01:57:54

标签: php oop

我有一个班级Company,这个班级有一些搜索,列表等方法,用于我网站的访问者。但我有一个不同的类adminCompany,仅当有管理员用户登录时才有效。这个类有其他方法:update_info_company()delete_company(),以及管理员可以做的任何事情

我的问题是:

  • 我是否应该有一个班级(公司)来做所有事情而只是限制对某些方法的访问?
  • 这违反了OOP的原则吗?
PD:它只是为了保持更清洁和更短的课程。

1 个答案:

答案 0 :(得分:2)

在OOP中我们有这个东西:single responsibility principle。它基本上意味着每个类应该只有一个改变的原因(扩展时)。

根据您的描述,似乎“公司”既是一个单独的实体(最有可能是domain object的某些变体),它具有不同的属性,可以创建或删除。然后它还有工厂的方面,当它用于查找同一对象的多个实例时。 这似乎是个错误。

你应该将这个结构的两个方面分开(我假设现在你有class AdminCompany extends Company{},这是问题的一部分)。

至于控制哪些用户组可以执行任务,您可能会发现this post有用。