zoukankan      html  css  js  c++  java
  • 简单工厂模式

    简单工厂模式概述

    又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例

    优点

    客户端不需要在负责对象的创建,从而明确了各个类的职责

    缺点

    这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护

    public class IntegerDemo {
    	public static void main(String[] args) {
    		Animal dog = AnimalFactory.createAnimal("dog");
    		Animal cat = AnimalFactory.createAnimal("cat");
    		Animal pig = AnimalFactory.createAnimal("pig");
    
    		if (dog != null) {
    			dog.eat();
    		} else {
    			System.out.println("无法创建");
    		}
    
    		if (cat != null) {
    			cat.eat();
    		} else {
    			System.out.println("无法创建");
    		}
    
    		if (pig != null) {
    			pig.eat();
    		} else {
    			System.out.println("无法创建");
    		}
    	}
    }
    
    abstract class Animal {// 抽象类
    	public abstract void eat();
    }
    
    class Dog extends Animal {// 狗
    	public void eat() {
    		System.out.println("a dog is eatting.");
    	}
    }
    
    class Cat extends Animal {// 猫
    	public void eat() {
    		System.out.println("a cat is eatting.");
    	}
    }
    
    class AnimalFactory {// 动物工厂
    	private AnimalFactory() {// 把构造方法改成private
    
    	}
    
    	public static Animal createAnimal(String s) {
    		if ("dog".equals(s)) {
    			return new Dog();
    		} else if ("cat".equals(s)) {
    			return new Cat();
    		} else {
    			return null;
    		}
    	}
    }
    
  • 相关阅读:
    jdk7_ConcurrentHashMap 图示
    Teradata 日期函数
    Teradata正则表达式
    Teradata sql去除字段中的字母/数字
    sql查询连续3天有交易记录的客户
    批量生成sql查询语句
    sql查询字段中是否含有字母/数字/符号
    sql查询每个人最新的2个电话号码
    python连接Teradata数据库
    dos命令获取文件行数
  • 原文地址:https://www.cnblogs.com/denggelin/p/6348092.html
Copyright © 2011-2022 走看看