2020年9月30日星期三

Java设计模式之003--工厂模式 - 码农-张员外 - 开发者的网上家园

工厂模式(Factory Pattern是 Java 中最常用的设计模式之一。 这种类型的设计模式属于创建型模式, 它提供了一种创建对象的最佳方式。

在工厂模式中, 我们在创建对象时不会对客户端暴露创建逻辑, 并且是通过使用一个共同的接口来指向新创建的对象。

工厂模式让调用者与被调用者之间解耦 :当两者发生变化时, 相互之间的影响降到最低, 这个原则体显了项目的可维护性 。

优点:面向接口编程, 体现了面向对象的思想; 将创建对象的工作转移到了工厂类;

JDK 中的工厂设计模式实例 :
a.java.util.Calendar, ResourceBundle and NumberFormat getInstance() 使用了工厂方法模式;
b.valueOf() 在包装类中, 如Boolean, Integer 也使用了工厂方法模式;
c.Spring框架中, 就是使用了工厂模式来解决对象的创建。

举例说明:创建不同的产品对象,例如手机、电脑。

a.创建接口,以供不同产品去实现

public interface Product {
public void work();
}

b.以供不同对象类去实现接口的方法

public class Computer implements Product {
@Override
public void work() {
System.out.println("电脑开始工作...");
}
}
public class Phone implements Product {
@Override
public void work() {
System.out.println("手机开始工作...");
}
}

c.定义工厂类来创建对象

public class ProductFactory {
public static Product getProduct(String name) {
if("phone".equals(name)){        //可将"phone"配置到文件中获取出来
return new Phone();
}else if ("computer".equals(name)){  //可将"computer"配置到文件中获取出来
return new Computer();
}else{
throw new ProductException("procuct 不存在!");  //自定义异常ProductException
}
  }
}

测试对比:

public class Test {
public static void main(String[] args) {
//1 Product p = new Phone();
//1 p.work();

//2 工厂模式:让对象之间的强依赖,转化成对工厂对象的依赖
Product p = ProductFactory.getProduct("phone");  //可将"phone"配置到文件中获取出来
p.work();
}
}

 

原文转载:http://www.shaoqun.com/a/478779.html

周宁:https://www.ikjzd.com/w/1647

xinong:https://www.ikjzd.com/w/1368

拍拍:https://www.ikjzd.com/w/2205


工厂模式(FactoryPattern)是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式让调用者与被调用者之间解耦:当两者发生变化时,相互之间的影响降到最低,这个原则体显了项目的可维护性。优点:面向接口编程,体现了面向对象的思想;将创建
FEN:https://www.ikjzd.com/w/2668
reddit:https://www.ikjzd.com/w/180
fba发货的注意事项:https://www.ikjzd.com/home/115627
Amazon搜索引擎眼中的Listing, A9排名因素精准描述收了!!:https://www.ikjzd.com/tl/4316
亚马逊停售N95口罩!这些卖家却要日出千单了……:https://www.ikjzd.com/home/119377

没有评论:

发表评论