zoukankan      html  css  js  c++  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());
            }
        }
    }
    
    

    执行结果:

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

    目录结构如下,

  • 相关阅读:
    swift3.0 coreData的使用-日记本demo
    Objective-C plist文件与KVC 的使用
    swift3.0 CoreGraphics绘图-实现画板
    Objective-C 使用核心动画CAAnimation实现动画
    Objectiv-C UIKit基础 NSLayoutConstraint的使用(VFL实现)
    Objectiv-c
    C语言基础
    C语言基础
    swift 3.0 基础练习 面向对象 类的扩展
    myIsEqualToString
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/5906259.html
Copyright © 2011-2022 走看看