JAVA设计模式之【简单工厂模式】-阿里云开发者社区

开发者社区> 桃子红了呐> 正文

JAVA设计模式之【简单工厂模式】

简介:
+关注继续查看

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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java描述设计模式(02):简单工厂模式
一、生活场景简介 1、引入场景 订餐流程简单描述 1)、食品抽象类,规定食品的基础属性操作 2)、鱼类,鸡肉类食品类扩展 3)、订餐流程类,根据食品名称,加工指定类型食品 4)、模拟客户端预定操作 2、源代码实现 1)、关系图谱 2)、代码实现 /** * 简单工厂模式引入场景 */ publ...
559 0
JAVA设计模式之工厂模式
JAVA设计模式之工厂模式—Factory Pattern 1.工厂模式简介 工厂模式用于对象的创建,使得客户从具体的产品对象中被解耦。 2.工厂模式分类 这里以制造coffee的例子开始工厂模式设计之旅。
614 0
反射与工厂设计模式 | 带你学《Java语言高级特性》之八十三
通过案例逐步掌握工厂设计模式,通过工厂类获取指定接口的实例化对象。
724 0
4269
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载