在某OA系统中,系统根据对比用户在登录时输入的账号和密码以及在数据库中存储的账号和密码是否一致来进行身份验证,如果验证通过,则取出存储在数据库中的用户权限等级(以整数形式存储),根据不同的权限等级创建不同等级的用户对象,不同等级的用户对象拥有不同的操作权限。现使用简单工厂模式来设计该权限管理模块。

Administrator 类:public class Administrator extends User
{public Administrator(){System.out.println("创建管理员对象!");}public void diffOperation(){System.out.println("管理员拥有创建和管理假条权限!");}
}
Client类:public class Client
{public static void main(String args[]){try{User user;UserDAO userDao=new UserDAO();int permission=userDao.findPermission("zhangsan","123456");user=UserFactory.getUser(permission);user.sameOperation();user.diffOperation();}catch(Exception e){System.out.println(e.getMessage());}}
}
Employee类;public class Employee extends User
{public Employee(){System.out.println("创建员工对象!");}public void diffOperation(){System.out.println("员工拥有创建假条权限!");}
}
Manager 类:public class Manager extends User
{public Manager(){System.out.println("创建经理对象!");}public void diffOperation(){System.out.println("经理拥有创建和审批假条权限!");}
}
User类:public abstract class User
{public void sameOperation(){System.out.println("修改个人资料!");}public abstract void diffOperation();
}
UserDAO类;
public class UserDAO
{public int findPermission(String userName,String userPassword){if("zhangsan"==userName&&"123456"==userPassword){return 1;}else{return -1;}}
}
UserFactory类;public class UserFactory
{public static User getUser(int permission){if(0==permission){return new Employee();}else if(1==permission){return new Manager();}else if(2==permission){return new Administrator();}else{return null;}}
}

软件设计体系-简单工厂模式实例二---权限管理相关推荐

  1. 工厂三兄弟之简单工厂模式(二)

    2 简单工厂模式概述 简单工厂模式并不属于GoF 23个经典设计模式,但通常将它作为学习其他工厂模式的基础,它的设计思想很简单,其基本流程如下: 首先将需要创建的各种不同对象(例如各种不同的Chart ...

  2. java简单工厂模式实例造车,JAVA设计模式学习5——工厂方法模式

    工厂方法模式(Factory Method)又称虚拟构造子模式,可以说是简单工厂的抽象,也可以理解为简单工厂是退化了的工厂方法模式,其表现在简单工厂丧失了工厂方法的多态性.我们前一节中提到当产品结构变 ...

  3. 《跟二师兄学Nacos吧》EXT-01篇 看看Nacos是怎么活学活用简单工厂模式的!

    学习不用那么功利,二师兄带你一起轻松读源码- 番外篇简介 Nacos源码分析系列文章,在开篇已经提到过,写作的目标有两个:第一,能够系统的学习Nacos知识:第二,能够基于Nacos学到涉及到的知识点 ...

  4. 简单工厂模式(Java、Python)、工厂方法模式(Java、Python)

    目录 一.试画出简单工厂模式的模式结构图,并对模式进行分析 1.1 简单工厂模式结构图: 1.2 简单工厂模式的实现(Java) 1.3 简单工厂模式的优缺点 1.4 简单工厂模式实现(Python) ...

  5. 【C#设计模式】4-0. 简单工厂模式【创建型】

    [C#设计模式]总目录-共23种 [C#设计模式]简单工厂模式 前言 一.简单工厂模式定义 二.实例 三.进一步研究[违反开闭原则的解决方法] 四.简化简单工厂模式[将抽象产品类和工厂类合并] 五.简 ...

  6. C#设计模式(2)——简单工厂模式

    一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式--简单工厂模式. 二.简单工厂 ...

  7. java工厂模式 uml_深入浅出设计模式-简单工厂模式

    模式定义 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式定义了一个创建对象的类,由这个类来封装实例化 ...

  8. C#设计模式——简单工厂模式

    一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式--简单工厂模式. 二.简单工厂 ...

  9. 【设计模式】喝一杯果汁,学会简单工厂模式

    本文主要通过榨汁机和果汁的例子,讲解简单工厂模式及其Python代码实现. 文章目录 工厂模式设计思想 简单工厂模式的代码实现 小结 工厂模式设计思想 在日常生活中,我们通过榨汁机榨汁,加入不同的水果 ...

最新文章

  1. C++ 向量(vector) 的使用
  2. php+rsa生成签名sign,PHP 做 RSA 签名 生成订单(支付宝例子)
  3. 零基础参加java培训哪家机构好
  4. 解决办法:CMake编译时出现“error in configuration process project files may be invalid”
  5. c100f3网站服务器,0201N100F250LT
  6. C语言dijkstra最短距离的算法(附完整源码)
  7. java自动生成合同_Java 7和Java 8之间的细微自动关闭合同更改
  8. 灵魂拷问!mysqlproxy配置
  9. 一个非常标准的Java连接Oracle数据库的示例代码
  10. oracle instant client 12,Oracle Instant Client_12_1 Downloads
  11. matlab 定步长积分,数值积分:基于牛顿-柯茨公式的定步长和自适应积分方法 [MATLAB]...
  12. 手动搭建webase(3)——WeBASE管理平台
  13. uniapp 苹果安全区配置
  14. ios linux远程控制软件,ios手机远程控制 ToDesk 1.0.9 iOS/iPad 版下载(远程控制软件)-520下载...
  15. spark while_while循环怎么理解
  16. Python基础复习09_面向对象特性
  17. nginx 配置https 代理http接口
  18. 栈 括号匹配问题(C语言)
  19. 爆!出现滑块验证码的原因找到了!
  20. Android 应用强制更新策略

热门文章

  1. Question2Answer插件:qa Connect
  2. php adodb使用,PHP ADODB实现事务处理功能示例
  3. 五大能力建设,着力解决EPC工程提质创效难题
  4. java textsharp,月光软件站 - 编程文档 - 其他语言 - 利用TextEditorControl控件现代码语法高亮显示...
  5. Hibernate框架(17) —— Hibernate中uniqueResult()与list()的区别
  6. QM报告:闲置交易跻身“宅经济”前5,转转集团领跑二手手机交易
  7. 统计学之三大相关性系数(pearson、spearman、kendall)
  8. 新大陆--markdown 以后可以开心的写博客了
  9. 【牛客网 - 华为机试 - HJ15 求int型正整数在内存中存储时1的个数】
  10. 北京朝阳法院借力区块链化解物业纠纷