用户类java,通过Java中的类和接口实现不同的用户类型

问题

我对设计模式相当陌生,并且一直在研究这本书,Head First Design Patterns。我需要实现一个有3种用户的系统:会员,主持人,管理员。主持人可以执行会员可以执行的所有操作,还可以添加其他内容,管理员可以执行主持人可以执行的所有操作,还可以添加其他内容。我已经对接口和类如何实现这一点作了基本的描述;没有经验,我需要SO社区关于这种设计的建议 - 无论是太臃肿还是愚蠢,还是需要更正。所以请耐心等待。

可能的解决方法

这里是接口:

public interface AdminBehavior

{

public addUser();

public deleteUser();

}

public interface ModeratorBehavior

{

public blockUser();

public deletePost();

}行为类:

public class AdminBehaviors implements AdminBehavior

{

public addUser() {

...

}

public deleteUser() {

...

}

}

public class NoAdminBehaviors implements AdminBehavior

{

public addUser() {

...//cannot do

}

public deleteUser() {

...//cannot do

}

}

+ Same as above done for Moderators...classes ModeratorBehaviors and NoModeratorBehaviors实际的用户类别:

public class Member

{

protected ModeratorBehavior moderatorBehavior;

protected AdminBehavior adminBehavior;

public Member() {

moderatorBehavior = new NoModeratorBehavior();

adminBehavior = new NoAdminBehavior();

}

public login() {

...

}

public logout() {

...

}

public post() {

...

}

public comment() {

...

}

//Moderator priv'ed actions

public blockUser() {

moderatorBehavior.blockUser();

}

public deletePost() {

moderatorBehavior.deletePost();

}

//Admin priv'ed actions

public addUser() {

adminBehavior.addUser();

}

public deleteUser() {

adminBehavior.deleteUser();

}

}

public class Moderator extends Member

{

public Moderator() {

moderatorBehavior = new ModeratorBehavior();

adminBehavior = new NoAdminBehavior();

}

}

public class Admin extends Moderator ((or Member?))

{

public Admin() {

moderatorBehavior = new ModeratorBehavior();

adminBehavior = new AdminBehavior();

}

}就我个人而言,我觉得这似乎有点过度或混乱......更好的方法来做到这一点?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值