用户类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();
}
}就我個人而言,我覺得這似乎有點過度或混亂......更好的方法來做到這一點?
總結
以上是生活随笔為你收集整理的用户类java,通过Java中的类和接口实现不同的用户类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java在加载阶段会加载依赖吗,Java
- 下一篇: 开发常见单词Java