首页Java基础Java源码Java框架设计模式JavaEEJava Web开发视频教程

您现在的位置:首页 >

设计模式

关注我们

优就业官方微信
优就业官方微信扫描二维码,即可与小
U亲密互动
优就业官方微博
优就业官方微博扫码关注,更有精彩活动
等你参与
  • 优就业官方QQ号

    优就业官方QQ号

    一键加好友
  • 咨询电话:( 9:00-22:00 )

    400-650-7353

Java工厂方法模式

2017-12-13 16:21:25

工厂方法模式分为三种:普通工厂模式、多个工厂方法模式和静态工厂方法模式。

1、普通工厂模式

普通工厂模式就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。

①package com.mode.create;

public interface MyInterface {

public void print();

}

②package com.mode.create;

public class MyClassOne implements MyInterface {

@Override

public void print() {

System.out.println("MyClassOne");

}

}

③package com.mode.create;

public class MyClassTwo implements MyInterface {

@Override

public void print() {

System.out.println("MyClassTwo");

}

}

④package com.mode.create;

public class MyFactory {

public MyInterface produce(String type) {

if ("One".equals(type)) {

return new MyClassOne();

} else if ("Two".equals(type)) {

return new MyClassTwo();

} else {

System.out.println("没有要找的类型");

return null;

}

}

}

⑤package com.mode.create;

public class FactoryTest {

public static void main(String[] args){

MyFactory factory = new MyFactory();

MyInterface myi = factory.produce("One");

myi.print();

}

}

再回头来理解这句话:普通工厂模式就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。

Java工厂方法模式

2、多个工厂方法模式

多个工厂方法模式,是对普通工厂方法模式的改进,多个工厂方法模式就是提供多个工厂方法,分别创建对象。

我们修改MyFactory和FactoryTest如下:

①package com.mode.create;

public class MyFactory {

public MyInterface produceOne() {

return new MyClassOne();

}

public MyInterface produceTwo() {

return new MyClassTwo();

}

}

②package com.mode.create;

public class FactoryTest {

public static void main(String[] args){

MyFactory factory = new MyFactory();

MyInterface myi = factory.produceOne();

myi.print();

}

}

再回头来理解这句话:多个工厂方法模式,是对普通工厂方法模式的改进,多个工厂方法模式就是提供多个工厂方法,分别创建对象。

3、静态工厂方法模式

静态工厂方法模式,将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可。

我们修改MyFactory和FactoryTest如下:

①package com.mode.create;

public class MyFactory {

public static MyInterface produceOne() {

return new MyClassOne();

}

public static MyInterface produceTwo() {

return new MyClassTwo();

}

}

②package com.mode.create;

public class FactoryTest {

public static void main(String[] args){

MyInterface myi = MyFactory.produceOne();

myi.print();

}

}

再回顾:静态工厂方法模式,将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可。

免责声明:本文来源于网络,由网友提供或网络搜集,仅供个人交流学习参考使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。谢谢合作!

猜你喜欢

 
 
咨询中心
优就业微信扫一扫
微信扫一扫

400-650-7353

加入官方微博