博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA设计模式之【简单工厂模式】
阅读量:5808 次
发布时间:2019-06-18

本文共 2216 字,大约阅读时间需要 7 分钟。

1.创建抽象类User

public abstract class User // 抽象类{    public void sameOperation()    {        System.out.println("修改个人资料!");    }    public abstract void diffOperation();}

2.创建继承类Employee、Manager、Administrator

public class Employee extends User{    public Employee()    {        System.out.println("创建员工对象!");    }    public void diffOperation()    {        System.out.println("员工拥有创建假条权限!");    }}
public class Manager extends User {    public Manager() {        System.out.println("创建经理对象!");    }    public void diffOperation() {        System.out.println("经理拥有创建和审批假条权限!");    }}
public class Administrator extends User{    public Administrator() // 构造函数    {        System.out.println("创建管理员对象!");    }    public void diffOperation()    {        System.out.println("管理员拥有创建和管理假条权限!");    }}

3.创建userDao类,判断身份用

public class UserDAO {    public int findPermission(String userName, String userPassword) // 定义两个参数    {        if ("zhangsan" == userName && "123456" == userPassword) {            return 2;        } else {            return -1;        }    }}

4.工厂类,根据不同的身份,创建不同的类对象

public class UserFactory // 用户工厂类{    public static User getUser(int permission) // 静态方法    {        if(0==permission) // 值为0的时候,返回雇员        {            return new Employee();        }        else if(1==permission) // 值为1 返回经理        {            return new Manager();        }        else if(2==permission) // 值为2 返回管理员        {            return new Administrator();        }        else        {            return null;        }    }}

5.创建客户端类,进行调用。JAVA中存在一种客户端的概念,主函数的概念。通过主函数,去实现类的实例化和方法的调用。

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());        }    }}

执行结果:

创建管理员对象!

修改个人资料!
管理员拥有创建和管理假条权限!

目录结构如下,

422101-20160925164806308-36535038.png

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5906259.html,如需转载请自行联系原作者

你可能感兴趣的文章
Xcode3.2.5中找不到Mac OS X - Command Line Utility -...
查看>>
css的div垂直居中的方法,百分比div垂直居中
查看>>
如何理解EM算法
查看>>
nginx 域名跳转一例~~~(rewrite、proxy)
查看>>
linux用户家目录无损迁移到独立硬盘
查看>>
文件查找
查看>>
shell编程前言(一)
查看>>
5、centos7.*配置yum的EPEL源及其它源
查看>>
JSON前后台简单操作
查看>>
shell中一些常见的文件操作符
查看>>
CentOS 7 装vim遇到的问题和解决方法
查看>>
JavaScript基础教程1-20160612
查看>>
使用第三方类、库需要注意的正则类RegexKitLite的使用
查看>>
iOS \U7ea2 乱码 转换
查看>>
FCN图像分割
查看>>
ios xmpp demo
查看>>
设计模式之-工厂模式、构造函数模式
查看>>
python matplotlib 中文显示参数设置
查看>>
数据库事务隔离级别
查看>>
os模块大全详情
查看>>