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;
    		}
    	}
    }
    
  • 相关阅读:
    线程池源码解析
    String与常量池
    spring循环依赖
    ConcurrentHashMap源码解析(JDK8)
    原子类源码分析
    web service和ejb的区别
    RPC
    hashcode()和equals()的区别
    关于json
    Lifecycle of jsf
  • 原文地址:https://www.cnblogs.com/denggelin/p/6348092.html
Copyright © 2011-2022 走看看