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

执行结果:

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

目录结构如下,



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

相关文章
|
设计模式 Java 数据库
小谈设计模式(2)—简单工厂模式
小谈设计模式(2)—简单工厂模式
|
设计模式 Java PHP
php设计模式--简单工厂模式(一)
php设计模式--简单工厂模式(一)
74 0
|
5月前
|
设计模式 算法 Java
设计模式觉醒系列(04)策略模式|简单工厂模式的升级版
本文介绍了简单工厂模式与策略模式的概念及其融合实践。简单工厂模式用于对象创建,通过隐藏实现细节简化代码;策略模式关注行为封装与切换,支持动态替换算法,增强灵活性。两者结合形成“策略工厂”,既简化对象创建又保持低耦合。文章通过支付案例演示了模式的应用,并强调实际开发中应根据需求选择合适的设计模式,避免生搬硬套。最后推荐了JVM调优、并发编程等技术专题,助力开发者提升技能。
|
9月前
|
设计模式 关系型数据库
「全网最细 + 实战源码案例」设计模式——简单工厂模式
简单工厂模式是一种创建型设计模式,通过工厂类根据传入参数创建不同类型的对象,也称“静态工厂方法”模式。其结构包括工厂类、产品接口和具体产品类。优点是封装性强、代码复用性好;缺点是扩展性差,增加新产品时需修改工厂类代码,违反开闭原则。适用于对象种类较少且调用者无需关心创建细节的场景。
171 19
|
设计模式
设计模式-简单工厂和工厂方法
设计模式-简单工厂和工厂方法
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
这篇文章详细解释了工厂模式,包括简单工厂、工厂方法和抽象工厂三种类型。每种模式都通过代码示例展示了其应用场景和实现方法,并比较了它们之间的差异。简单工厂模式通过一个工厂类来创建各种产品;工厂方法模式通过定义一个创建对象的接口,由子类决定实例化哪个类;抽象工厂模式提供一个创建相关或依赖对象家族的接口,而不需要明确指定具体类。
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
|
设计模式 XML Java
【一】设计模式~~~创建型模式~~~简单工厂模式(Java)
文章详细介绍了简单工厂模式(Simple Factory Pattern),这是一种创建型设计模式,用于根据输入参数的不同返回不同类的实例,而客户端不需要知道具体类名。文章通过图表类的实例,展示了简单工厂模式的结构、时序图、代码实现、优缺点以及适用环境,并提供了Java代码示例和扩展应用,如通过配置文件读取参数来实现对象的创建。
【一】设计模式~~~创建型模式~~~简单工厂模式(Java)
|
设计模式 uml C语言
设计模式----------工厂模式之简单工厂模式(创建型)
这篇文章详细介绍了简单工厂模式,包括其定义、应用场景、UML类图、通用代码实现、运行结果、实际应用例子,以及如何通过反射机制实现对象创建,从而提高代码的扩展性和维护性。
设计模式----------工厂模式之简单工厂模式(创建型)
|
设计模式 测试技术 Go
[设计模式]创建型模式-简单工厂模式
[设计模式]创建型模式-简单工厂模式
104 1
|
设计模式 Java
Java设计模式:工厂模式之简单工厂、工厂方法、抽象工厂(三)
Java设计模式:工厂模式之简单工厂、工厂方法、抽象工厂(三)