What are the three factory patterns in java?
Java's three factory patterns: 1. Simple factory pattern, which provides a function to create object instances without caring about its specific implementation; 2. Factory method pattern; 3. Abstract factory pattern, which provides a function to create an object instance. An interface for a family of related or interdependent objects without specifying their concrete classes.
(Recommended tutorial: java introductory tutorial)
1. Simple factory pattern
Definition of simple factory: Provides a function to create object instances without caring about its specific implementation. The type of the created instance can be an interface, an abstract class, or a specific class
Implementing the car interface
1 2 3 |
|
Benz class
1 2 3 4 5 6 |
|
BMW type
1 2 3 4 5 6 |
|
Simple factory that can produce both BMW and Mercedes-Benz
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Test class
1 2 3 4 5 6 7 |
|
Test result
1 |
|
According to the definition of a simple factory, users only need the product and don’t care how the product is produced, and it looks perfect. But think about it, are there any factories in this world that produce everything?
Obviously does not exist. Every car brand has its own production factory and its own production technology. Mapping to the spring framework, we have many types of beans that need to be produced. If we only rely on a simple factory to implement it, how many if..else ifs do we have to nest in the factory class?
Moreover, when we produce a car in the code, it just comes out with a new one, but in actual operation we don’t know how many operations are required. Loading, registration and other operations will be reflected in the factory class, so this class It will become chaotic and inconvenient to manage, so each brand should have its own production category.
Because it is dedicated, it is professional. At this time, the factory method appeared.
2. Factory method pattern
Factory interface
1 2 3 4 |
|
Benz factory
1 2 3 4 5 6 |
|
BMW Factory
1 2 3 4 5 6 |
|
Test category
1 2 3 4 5 6 7 8 |
|
Test result
1 2 |
|
According to the above It can be seen from the code that cars of different brands are produced by different factories, and they seem to be perfect. But if you look at the test category, when a person wants to buy a BMW car (assuming there is no seller), then he has to go to the BMW factory to produce one for him, and a few days later he wants to buy a Mercedes-Benz. When buying a car, you have to go to the Mercedes-Benz factory to hire someone to produce it, which undoubtedly increases the complexity of the user's operation. So is there a user-friendly method? At this time, the abstract factory pattern appeared.
3. Abstract Factory Pattern
Abstract Factory
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Default Factory
1 2 3 4 5 6 7 8 9 |
|
BMW Factory
1 2 3 4 5 6 |
|
Benz Factory
1 2 3 4 5 |
|
Test Class
1 2 3 4 5 6 |
|
Test results
1 |
|
As can be seen from the above code, if the user needs a car, he only needs to go to the default factory to put forward his needs (incoming parameters ), you can get the products you want without having to find different production factories based on the products, which is convenient for users to operate.
Note: Some people sneer at design patterns, and some people respect them as gods, but I agree with them.
According to my rough understanding, the classic thing about design patterns is that it solves the pain of both the person who writes the code and the person who calls the code. Different design patterns are only applicable to Different scenarios. As for whether to use it or not, and how to use it, you need to consider it carefully.
But you shouldn’t use it just for the sake of using it. The subtleties can only be left to everyone to taste slowly.
For more programming-related knowledge, please visit: Programming Courses! !
The above is the detailed content of What are the three factory patterns in java?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics





Guide to Perfect Number in Java. Here we discuss the Definition, How to check Perfect number in Java?, examples with code implementation.

Guide to Weka in Java. Here we discuss the Introduction, how to use weka java, the type of platform, and advantages with examples.

Guide to Smith Number in Java. Here we discuss the Definition, How to check smith number in Java? example with code implementation.

In this article, we have kept the most asked Java Spring Interview Questions with their detailed answers. So that you can crack the interview.

Java 8 introduces the Stream API, providing a powerful and expressive way to process data collections. However, a common question when using Stream is: How to break or return from a forEach operation? Traditional loops allow for early interruption or return, but Stream's forEach method does not directly support this method. This article will explain the reasons and explore alternative methods for implementing premature termination in Stream processing systems. Further reading: Java Stream API improvements Understand Stream forEach The forEach method is a terminal operation that performs one operation on each element in the Stream. Its design intention is

Guide to TimeStamp to Date in Java. Here we also discuss the introduction and how to convert timestamp to date in java along with examples.

Capsules are three-dimensional geometric figures, composed of a cylinder and a hemisphere at both ends. The volume of the capsule can be calculated by adding the volume of the cylinder and the volume of the hemisphere at both ends. This tutorial will discuss how to calculate the volume of a given capsule in Java using different methods. Capsule volume formula The formula for capsule volume is as follows: Capsule volume = Cylindrical volume Volume Two hemisphere volume in, r: The radius of the hemisphere. h: The height of the cylinder (excluding the hemisphere). Example 1 enter Radius = 5 units Height = 10 units Output Volume = 1570.8 cubic units explain Calculate volume using formula: Volume = π × r2 × h (4

Java is a popular programming language that can be learned by both beginners and experienced developers. This tutorial starts with basic concepts and progresses through advanced topics. After installing the Java Development Kit, you can practice programming by creating a simple "Hello, World!" program. After you understand the code, use the command prompt to compile and run the program, and "Hello, World!" will be output on the console. Learning Java starts your programming journey, and as your mastery deepens, you can create more complex applications.
