前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图图谈设计模式——静态工厂设计模式_java

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

作者头像
一头小山猪
发布2020-04-10 10:51:47
3120
发布2020-04-10 10:51:47
举报
文章被收录于专栏:微光点亮星辰

创建时间:

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();
     }
}
测试
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微光点亮星辰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档