# 简单工厂模式
简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。
- 实体类
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模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
- 外观模式的目的:外观模式的目的不是给子系统添加新的功能接口,而是为了让外部减少与子系统内部多个模块的交互,松散耦合,从而让外部更加简单地使用子系统。