用状态模式实现用户权限的多态性

简介: 封装用户的功能,对于执行功能的部分,用户接口是一个状态,不同用户决定了执行功能的不同   public class User...{    private string m_userRight;    public string UserRight    ...{        get        ...{            return m_userRight;       

封装用户的功能,对于执行功能的部分,用户接口是一个状态,不同用户决定了执行功能的不同

 

public   class  User
{
    
private string m_userRight;
    
public string UserRight
    
{
        
get
        
{
            
return m_userRight;
        }

        
set
        
{
            m_userRight
=value;
        }

    }

}


public   abstract   class  UserAction
{
    
public UserAction()
    
{
    }


    
protected User m_user;

    
public abstract void Search()
    
{
    }


}


public   class  AdminAction:UserAction
{
    
public override void Search()
    
{
        
if(m_user.UserRight.ToLower()=="admin")
            MessageBox.Show(
"you are administrator");
    }


}


public   class  SuperAction:UserAction
{
    
public override void Search()
    
{
        
if(m_user.UserRight.ToLower()=="super")
            MessageBox.Show(
"you are super");
    }


}


public   class  NormalAction:UserAction
{
    
public override void Search()
    
{
        
if(m_user.UserRight.ToLower()=="normal")
            MessageBox.Show(
"your are normal");
    }


}

 

相关文章
|
SQL 分布式计算 Java
Spark常见错误剖析与应对策略
Spark常见错误剖析与应对策略
959 1
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
3317 1
|
机器学习/深度学习 运维 搜索推荐
机器学习中准确率、精确率、召回率、误报率、漏报率、F1-Score、AP&mAP、AUC、MAE、MAPE、MSE、RMSE、R-Squared等指标的定义和说明
在机器学习和深度学习用于异常检测(Anomaly detection)、电子商务(E-commerce)、信息检索(Information retrieval, IR)等领域任务(Task)中,有很多的指标来判断机器学习和深度学习效果的好坏。这些指标有相互权衡的,有相互背向的,所以往往需要根据实际的任务和场景来选择衡量指标。本篇博文对这些指标进行一个梳理。
机器学习中准确率、精确率、召回率、误报率、漏报率、F1-Score、AP&mAP、AUC、MAE、MAPE、MSE、RMSE、R-Squared等指标的定义和说明
|
Java Maven 开发者
SpringBoot 基于 IDEA 搭建一个简单的项目
SpringBoot 基于 IDEA 搭建一个简单的项目
632 0
SpringBoot 基于 IDEA 搭建一个简单的项目
|
3天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
271 116
|
18天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~