# 简单工厂模式

简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。

  • 实体类
public abstract class Animal {

    public void shout(){
        System.out.println("动物在叫");
    }
}

class Dog extends Animal{
    @Override
    public void shout() {
        System.out.println("狗在叫");
    }
}

class Cat extends Animal{
    @Override
    public void shout() {
        System.out.println("猫在叫");
    }
}
  • 工厂类
public class AnimalFactory {
    public static Animal creatAnimal(String name){
        Animal animal = null;
        switch (name) {
            case "猫":
                animal = new Cat();break;
            case "狗":
                animal = new Dog();break;
            default:
                animal = new Animal() {
                    @Override
                    public void shout() {
                        System.out.println("不知名动物在叫");
                    }
                };
        }
        return animal;
    }
}
  • Main函数
public class Test {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (true) {
            String name = in.next();
            Animal animal = AnimalFactory.creatAnimal(name);
            animal.shout();
        }
    }
}
  • 结果
    运行结果

# 策略模式

它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。

# 外观模式

定义:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

  • 外观模式的目的:外观模式的目的不是给子系统添加新的功能接口,而是为了让外部减少与子系统内部多个模块的交互,松散耦合,从而让外部更加简单地使用子系统。

# 单例模式

最后编辑时间: 12/23/2020, 5:11:10 PM