Home > Java > javaTutorial > body text

Detailed explanation of the specific code to implement the abstract factory pattern in Java

黄舟
Release: 2017-03-18 10:49:56
Original
1962 people have browsed it

Abstract Factory Pattern

There are several concepts in it: Abstract Factory, Entity Factory,Abstract product, Entity product

Abstract factory: Define the abstract method to create a product

Entity factory : Specifically what kind of product to create

Abstract product: An interface or base class

Entity product: Implement specific functions, or derive

Class Diagram


//抽象产品1
public interface IProduct1 {
	public void show();
}
Copy after login
//抽象产品2
public interface IProduct2 {
	public void show();
}
Copy after login
//实体产品1
public class Product1 implements IProduct1 {  
    public void show() {  
        System.out.println("创建了1型产品");  
    }  
}
Copy after login
//实体产品2
public class Product2 implements IProduct2 {
	public void show() {
		System.out.println("创建了2型产品");
	}
}
Copy after login
/*
 * 1A 1B属于Product1 同一产品等级结构中
 * 2A 2B属于Product2
 */
public class GradeProduct1A extends Product1 {

	@Override
	public void show() {
		super.show();
		System.out.println("这是产品1下的:产品A");
	}
	
}
Copy after login
public class GradeProduct1B extends Product1 {

	@Override
	public void show() {
		super.show();
		System.out.println("这是产品1下的:产品B");
	}
}
Copy after login
public class GradeProduct2A extends Product2 {

	@Override
	public void show() {
		super.show();
		System.out.println("这是产品2下的:产品A");
	}
}
Copy after login
public class GradeProduct2B extends Product2 {

	@Override
	public void show() {
		super.show();
		System.out.println("这是产品2下的:产品B");
	}
}
Copy after login
//抽象工厂 创建不同的抽象产品
public interface IFactory {
	public IProduct1 createProduct1A();//1类产品 型号A
	public IProduct1 createProduct1B();//1类产品 型号B
	public IProduct2 createProduct2A();//2类产品 型号A
	public IProduct2 createProduct2B();//2类产品 型号B
}
Copy after login
//实体工厂 创建实体产品,返回类型为抽象产品
public class Factory implements IFactory {

	public IProduct1 createProduct1A() {
		return new GradeProduct1A();
	}

	public IProduct1 createProduct1B() {
		return new GradeProduct1B();
	}

	public IProduct2 createProduct2A() {
		return new GradeProduct2A();
	}

	public IProduct2 createProduct2B() {
		return new GradeProduct2B();
	}
}
Copy after login

Related articles:

JAVA Design Pattern Abstract Factory Pattern

Comparison of PHP simple factory pattern, factory method pattern and abstract factory pattern

PHP object-oriented development - abstract factory pattern

The above is the detailed content of Detailed explanation of the specific code to implement the abstract factory pattern in Java. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template