图图谈设计模式——静态工厂设计模式_java

2020-04-10 10:51:47 浏览数 (1)

创建时间:

2016/11/9 8:37

作者:

tjhuey@163.com

图图接下来将介绍第二种设计模式,工厂设计模式。工厂,见名知意,就是创建产品的。

同样在java中,是用来创建对象的。为什么用工厂模式呢,因为他可以解耦,可扩展。方便开发。

而最常用的就是静态工厂模式,(很多时候会结合单例模式,new出来的对象是单例的)

简单的UML图(有瑕疵)如下

代码语言:javascript复制
package org.huey.partten.factory.factorymethod;
/**
 * 抽象产品
 * @author huey
 *
 */
public interface Computer {
     public void run();
}
package org.huey.partten.factory.factorymethod;
/*
 * 工厂接口
 * @author huey
 *
 */
public interface ComputerFactory {
     public Computer createComputer();
}
package org.huey.partten.factory.factorymethod;
/**
 * 详细产品
 * @author huey
 *
 */
public class Dell implements Computer{
     @Override
     public void run() {
          System.out.println(Dell.class.getSimpleName() "跑起来了!");
     }
}
package org.huey.partten.factory.factorymethod;
public class DellFactory implements ComputerFactory {
     @Override
     public Computer createComputer() {
          return new Dell();
     }
}
package org.huey.partten.factory.factorymethod;
public class Lenovo implements Computer{
     @Override
     public void run() {
          System.out.println(this.getClass().getSimpleName() "跑起来了!");
     }
}
package org.huey.partten.factory.factorymethod;
public class LenovoFactory implements ComputerFactory{
     @Override
     public Computer createComputer() {
          return new Lenovo();
     }
}
package org.huey.partten.factory.factorymethod;
/**
 * 测试
 * @author huey
 *
 */
public class FactoryMethodFactoryTest {
     public static void main(String[] args) {
          ComputerFactory dellFactory = new DellFactory();
          Computer dell = dellFactory.createComputer();
          dell.run();
          ComputerFactory lenovoFactory = new LenovoFactory();
          Computer lenovo = lenovoFactory.createComputer();
          lenovo.run();
     }
}
测试

0 人点赞