我有三种类型的用户:A,B,C ..因此用户基类然后我们有3个派生类.但是,用户可以同时使用两种类型.我们如何以合适的方式处理这个问题,请记住用户的类型将定义他们在应用程序中的访问类型.
也许你应该重新定义你的设计.我会说最好定义两个类:
然后,User类可以拥有一组角色.这将使整个设计变得更简单,更清洁.
用户可以没有,一个或不同的角色.但是,用户本质上不具备任何角色.它只具有承担角色的能力.
但是当然你可以在这里使用装饰模式,如其他海报所述.
我会使用装饰模式,例如
$user = new User ();
$user = new Role1 ($user);
$user = new Role2 ($user);
Run Code Online (Sandbox Code Playgroud)