(三)、工厂模式

本文介绍了Java中的工厂模式,它属于创建型模式,提供创建对象的最佳方式,能将对象创建和使用分开,起到解耦和降低代码重复的作用。还详细阐述了简单工厂模式、工厂方法模式的定义、实现代码及测试类,简单提及抽象工厂模式。

什么是工厂模式?作用是什么?

工厂模式属于创建型模式,它提供了一种创建对象的最佳方式。在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。在任何需要生成复杂对象的地方,都可以使用工厂方法模式。如Spring。

作用:

工厂模式把对象的创建和使用的过程分开。如Class A 想调用 Class B ,那么A只是调用B的方法,而至于B的实例化,就交给工厂类。降低了ClassA与ClassB的耦合度。起到了解耦的作用。

工厂模式还可以降低代码重复。如果创建对象的过程都很复杂,且要用到的地方很多,那么就会产生很多的重复代码。因此可以这些创建对象的过程交给工厂里统一管理。既减少了重复代码,也便与管理对象和维护。

(一)、简单工厂模式

1、定义接口IClass

public interface IClass {

  public void create();

}

2.Class1实现接口IClass 并复写方法

public class Class1 implements IClass {

@Override

public void create() {

System.out.println("calss1对象创建成功!");

}

}

3、Class2实现接口IClass 并复写方法

public class Class2 implements IClass {

@Override

public void create() {

System.out.println("calss2对象创建成功!");

}

}

4、工厂类

public class Factory {

  //这是简单工厂模式,IClass为Class1和Class2的接口

  public IClass produce(String type){

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

    return new Class1();

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

    return new Class2();

  }else{

    System.out.println("请输入正确的类型!");

  return null;

  }

}

//多个方法

/*public IClass Class1(){

return new Class1();

}

public IClass Class2(){

return new Class2();

}*/

}

5、测试类

public static void main(String[] args) {
  Factory factory = new Factory();
  IClass iclass = factory.produce("class1");
  iclass.create();
}

二、工厂方法模式

简单工厂有一个问题,类的创建依赖工厂类,也就是说要扩展程序,
必须对工厂类进行修改,如果工厂出了问题,其他的类创建也会受到影响。这违背了闭包原则。

1、1,2,3步骤同上。

4、工厂接口IFactory 。

public interface IFactory {

  public IClass produce();

}

5、Class1Factory实现IFactory 并复写创建对象的方法。

 public class Class1Factory implements IFactory {

@Override
public IClass produce() {
  return new Class1();
}
}

6、Class2Factory同上。

7、测试类

public class FactoryTest {
public static void main(String[] args) {
  IFactory pro = new Class1Factory();
  IClass sender = pro.produce();
  sender.create();
}
}

三、抽象工厂模式

 

转载于:https://www.cnblogs.com/dwxblogs/p/10932646.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值