Home>Article>Java> Java design pattern factory pattern (three types)

Java design pattern factory pattern (three types)

高洛峰
高洛峰 Original
2016-12-15 14:10:38 1244browse

Factory Pattern

1. Simple Factory

Understanding

Factory classes in the simple factory pattern generally use static methods to return different object instances based on the different parameters they receive.
It cannot be expanded without modifying the code.
Example

Product interface

//Product interface
public interface ProductI {
public void productName();
}
Product entity class

public class ProductA implements ProductI {
@Override
public void productName() {
System .out.println("product A");
}
}
public class ProductB implements ProductI {
@Override
public void productName() {
System.out.println("product B");
}
}
Factory class

//Simple factory pattern
public class Factory {
public ProductI create(String productName) {
switch (productName) {
case "A": use using ‐ ‐ use using through through through through ‐ ‐ ‐‐ ‐‐ ‐‐‐‐ to
return new ProductB();
return null; Factory();
ProductI productA = factory.create("A");
productA.productName();
ProductI productB = factory.create("B"); productB.productName();
}
}
Output

product A

product B

Factory method
Understanding

The factory method provides a factory class for each product. Different product instances are created through different factory instances.
In the same hierarchical structure, any product is supported.
Example

The product interface, product entity class and simple factory are the same.

Factory interface

public interface FactoryI {
// The purpose of the factory is to produce products
public ProductI create();
}
Factory entity class

public class FactoryA implements FactoryI {
@Override
public ProductI create() {
Return new ProductA();
public class Client {
public static void main(String[] args) {
FactoryI factoryA = new FactoryA();
ProductI productA = factoryA.create();
productA.productName();
//
FactoryI factoryB = new FactoryB();
ProductI productB = factoryB.create();
productB.productName();
}
}
Output

product A

product B

Abstract Factory
Understanding

Abstract factory is a response to product families Conceptual. For example, each automobile company may want to produce cars, trucks, and buses at the same time, so each factory must have a method for creating cars, trucks, and buses.
It was born in response to the concept of product family. It is easy to add new product lines, but it is impossible to add new products.
The difference from factory methods is that abstract factories often have multiple methods that can produce multiple products, that is, product clusters.
Example

Abstract factory class

// Drawing factory pattern
public interface AbstractFactory {
public ProductAI createProductA();
public ProductBI createProductB();
}
Factory entity class

public class Factory1 implements AbstractFactory {
@Override
public ProductAI createProductA() {
return new ProductA1();
}

@Override
public ProductBI createProductB() {
return new ProductB1();
}
}
public class Factory2 implements AbstractFactory {
@Override
public ProductAI createProductA() {
return new ProductA2();
}

@Override
public ProductBI createProductB() {
return new ProductB2();
}
}
产品接口

//产品接口
public interface ProductBI {
public void productName();
}
//产品接口
public interface ProductAI {
public void productName();
}
产品实体类

public class ProductA1 implements ProductAI {
@Override
public void productName() {
System.out.println("product A1");
}
}


更多Java设计模式之工厂模式(三种)相关文章请关注PHP中文网!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn