2 简单工厂设计模式

​ 简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类(或者父接口)

简单工厂模式的 UML 图:

  1. 抽象产品(Product)角色:简单工厂模式所创建的是所有对象的父类,注意,这里的父类可以是接口也可以是抽象类,它负责描述所有实例所共有的公共接口。

  2. 具体产品(Concrete Product)角色:简单工厂所创建的具体实例对象,这些具体的产品往往都拥有共同的父类。

  3. 工厂角色(Creator):这是简单工厂模式的核心,由它负责创建所有的类的内部逻辑。当然工厂类必须能够被外界调用,创建所需要的产品对象。

代码示例:

代码:

  1. 抽象产品角色:宠物

    /**
    * 抽象产品角色(Product)
    * 负责描述所有实例的公共接口
    */
    public interface Pet {
       public void eat();
    }
    
  2. 具体产品角色:

    1.       public class Cat implements Pet {
      
                protected Cat() {
                }
      
                @Override
                public void eat() {
                    System.out.println("猫咪正在吃东西...");
                }
      
            }
      
    2. public class Dog implements Pet {
      
          protected Dog() {
          }
      
          @Override
          public void eat() {
              System.out.println("狗狗正在吃东西");
          }
      
      }
      
  3. 工厂角色:

            public class PetFactory {
              public static Pet createPet(String name){
                if("cat".equals(name)){
                  return new Cat();
                }else if("dog".equals(name)){
                  return new Dog();
                }else{
                  return null;
                }
              }
            }
    
  4. 测试类:

public class Client {
  public static void main(String[] args) {
    Pet cat = PetFactory.createPet("cat");
    cat.eat();
    Dog dog = PetFactory.createPet("dog");
    dog.eat();
}

results matching ""

    No results matching ""