2012-08-15 16 views
0

我有一个类Company,这个类有一些方法来搜索,列表等,并用于我的网站的访问者。但我有一个不同的类adminCompany,它才能正常运行,当有一个管理员用户登录这个类有其他方法:update_info_company()delete_company(),和任何一个管理员可以做有什么更好的办法,管理员和访问者的单班或2班公司和adminCompany?

我的问题是:

  • 我应该有一个班级(公司)来做一切事情,只是限制访问某些方法?
  • 这是否违反OOP原则?

PD:它只是为了保持更清洁和更短的班级。

回答

2

在OOP中我们有这个东西:single responsibility principle。它基本上意味着每个班级只有一个理由需要改变(当扩展时)。

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

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

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