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

相关文章
|
11天前
|
设计模式 Java 数据库
小谈设计模式(2)—简单工厂模式
小谈设计模式(2)—简单工厂模式
|
1天前
|
设计模式
设计模式(一)简单工厂模式
设计模式(一)简单工厂模式
4 0
|
5天前
|
设计模式 算法 Java
Java中的设计模式及其应用
【4月更文挑战第18天】本文介绍了Java设计模式的重要性及分类,包括创建型、结构型和行为型模式。创建型模式如单例、工厂方法用于对象创建;结构型模式如适配器、组合关注对象组合;行为型模式如策略、观察者关注对象交互。文中还举例说明了单例模式在配置管理器中的应用,工厂方法在图形编辑器中的使用,以及策略模式在电商折扣计算中的实践。设计模式能提升代码可读性、可维护性和可扩展性,是Java开发者的必备知识。
|
8天前
|
设计模式 算法 Java
小谈设计模式(30)—Java设计模式总结
小谈设计模式(30)—Java设计模式总结
|
9天前
|
设计模式 存储 Java
Java设计模式:解释一下单例模式(Singleton Pattern)。
`Singleton Pattern`是Java中的创建型设计模式,确保类只有一个实例并提供全局访问点。它通过私有化构造函数,用静态方法返回唯一的实例。类内静态变量存储此实例,对外仅通过静态方法访问。
15 1
|
11天前
|
存储 Java
模式匹配魔法:Java 21中switch语句的巨大进化
模式匹配魔法:Java 21中switch语句的巨大进化
12 0
|
11天前
|
设计模式 Java
小谈设计模式(9)—工厂方法模式
小谈设计模式(9)—工厂方法模式
|
13天前
|
设计模式 算法 Java
23种设计模式,模板方法模式的概念优缺点以及JAVA代码举例
【4月更文挑战第10天】模板方法模式是一种行为设计模式,它定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些特定步骤。
14 0
|
14天前
|
设计模式 Java
23种设计模式,状态模式的概念优缺点以及JAVA代码举例
【4月更文挑战第9天】状态模式是一种行为设计模式,允许一个对象在其内部状态改变时改变它的行为,这个对象看起来似乎修改了它的类。
26 4
|
15天前
|
设计模式 SQL 算法
设计模式了解哪些,模版模式
设计模式了解哪些,模版模式
19 0