0

クラスCompanyがあります。このクラスには、検索、リストなどのメソッドがいくつかあり、私のウェブサイトの訪問者に使用されます。しかしadminCompany、管理者ユーザーがログインしている場合にのみ機能する別のクラスがあります。このクラスには、update_info_company()delete_company()、および管理者ができることは何でもあります

私の質問は次のとおりです。

  • すべてを実行し、いくつかのメソッドへのアクセスを制限するだけの単一のクラス (Company) を用意する必要がありますか?
  • これは OOP の原則に反していますか?

PD: 簡潔で短いクラスを維持するためです。

4

1 に答える 1

2

OOP には、単一責任の原則というものがあります。これは基本的に、各クラスが変更する理由が 1 つだけであることを意味します (拡張された場合)。

あなたの説明から、「会社」は両方とも別個のエンティティ(おそらく、ドメインオブジェクトのバリエーション)であり、異なるプロパティを持ち、作成または削除できるようです。そして、同じオブジェクトの複数のインスタンスを見つけるために使用される場合、ファクトリの側面もあります。これは間違いのようです。

この構造の 2 つの側面を分離する必要があります (class AdminCompany extends Company{}問題の一部である があると仮定します)。

タスクを実行できるユーザーのグループを制御することに関しては、この投稿が役立つ場合があります。

于 2012-08-15T02:14:30.450 に答える