首页
学习
活动
专区
圈层
工具
发布

图图谈设计模式——工厂方法设计模式_java

图图接下来将介绍第二种设计模式,工厂方法设计模式。

工厂设计模式一共有三种,静态工厂和工厂方法还有抽象工厂。

如果你仔细看了的话昨天的uml图和文本是今天的uml 和文本,今天的应该是昨天的静态工厂。也就是说今天的才是静态方法,而昨天的是工厂方法!

(图图太粗心了。望读者见谅。标题搞反了)

(很多时候会结合单例模式,new出来的对象是单例的)

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

代码语言:javascript
复制
package org.huey.partten.factory.staticfactory;
/**
 * 抽象实体
 * 静态工厂 也叫简单工厂
 * @author huey
 *
 */
public interface Computer{
     /**
      * 跑起来了
      */
 public void run();
}
package org.huey.partten.factory.staticfactory;
/**
 * 产品类
 * @author huey
 *
 */
public class Dell implements Computer{
     @Override
     public void run() {
          System.out.println(this.getClass().getSimpleName()+"跑起来了");
     }
}
package org.huey.partten.factory.staticfactory;
/**
 * 产品类
 * @author huey
 *
 */
public class Lenovo implements Computer {
     @Override
     public void run() {
          System.out.println(this.getClass().getSimpleName() + "跑起来了");
     }
}
package org.huey.partten.factory.staticfactory;
/**
 * 工厂类
 *
 * @author huey
 *
 */
public class ComputerFactory {
     public Computer createLenovo() {
          return new Lenovo();
     }
     public Computer createDell() {
          return new Dell();
     }
}
package org.huey.partten.factory.staticfactory;
/**
 * 测试方法
 *
 * @author huey
 *
 */
public class StaticeFactoryTest {
     public static void main(String[] args) {
          //获取工厂
          ComputerFactory computerFactory = new ComputerFactory();
          //创建对象,并执行方法
          Computer dell = computerFactory.createDell();
          dell.run();
          Computer lenovo = computerFactory.createLenovo();
          lenovo.run();
     }
}
下一篇
举报
领券