PHP Object Oriented - Birden fazla kullanıcı rolleri uygulamak için en iyi yolu

2 Cevap php

Ben kullanıcıların üç tip var: A, B, C .. Bu nedenle bir kullanıcı tabanı sınıf ve sonra biz 3 türetilmiş sınıfları var. Bir kullanıcı aynı zamanda 2 türde için Ancak mümkündür. Nasıl kullanıcı tipi (ler) onlar bir uygulama var erişim tür tanımlamak olacaktır akılda tutarak, iyi bir şekilde bu ile uğraşan hakkında gitmek istiyorum.

2 Cevap

Ben kullanmak decorator pattern, mesela olur

$user = new User ();
$user = new Role1 ($user);
$user = new Role2 ($user);

Maybe you should redefine your design. I'd say it'd be preferable to define two classes:

  • Rol sınıf
  • bir kullanıcı sınıfı

Bir kullanıcı sınıfı o rolleri bir koleksiyona sahip olabilir. Yani tüm tasarım basit ve temiz dönecek.

Bir Kullanıcı hiçbiri, bir veya farklı rolleri olabilir. Ama Kullanıcı özünde bu olabilir rollerden herhangi değildir. Bu sadece bir rol üstlenerek bir yeteneği vardır.

Diğer poster tarafından belirtildiği gibi ama tabii ki, burada Dekoratör Desen kullanabilirsiniz.