How to implement the proxy pattern in Java design patterns
What is the proxy mode
Definition of proxy mode: For some reasons, it is necessary to provide a proxy for an object to control access to the object. At this time, the access object is not suitable or cannot directly reference the target object, and the proxy object acts as an intermediary between the access object and the target object.
Advantages
1. The proxy mode plays an intermediary role between the client and the target object and protects the target object;
2. The proxy object can expand the target The function of the object;
3. The proxy mode can separate the client from the target object, which reduces the coupling of the system to a certain extent and increases the scalability of the program
Disadvantages
1. The proxy mode will increase the number of classes in the system design
2. Adding a proxy object between the client and the target object will cause the request processing speed to slow down;
3. Increases the complexity of the system;
Knowledge points
The structure of the agent mode is relatively simple, mainly by defining an agent that inherits the abstract topic to include the real topic, thereby realizing the To access real topics, let’s analyze its basic structure and implementation methods.
Agency model implementation
Case: Da Ben Dai Ganniang sells wine
Abstract subject (Subject) class: selling wine
Real Subject ) Category: Godmother’s tavern
Proxy Category: Da Ben’s wine stall
Da Ben came to set up a stall in front of Godmother’s tavern to sell wine as a proxy.
selling wine
A wine-selling interface declares an abstract method for selling wine
public interface Jiu { void show(); }
Godmother’s tavern
Godmother’s tavern class implementation Developed an interface for selling wine, implemented the show() wine selling method, declared a wine name, and an aa() method to prompt Da Ben to set up a stall
public class GanNiang implements Jiu { private String name; GanNiang() { } GanNiang(String name) { this.name = name; aa(); } @Override public void show() { System.out.printf("卖出一坛%s", name); } public void aa() { System.out.println("大奔来摆摊了"); } }
Da Ben’s wine stall
Daben’s wine stall class implements the wine selling interface, declares the name of the wine and the attributes of Ganniang Tavern, and implements the wine selling method.
public class DaBen implements Jiu { private String name; private GanNiang ganNiang; DaBen() { } DaBen(String name) { this.name = name; } @Override public void show() { if (ganNiang == null) { ganNiang = new GanNiang(name); } ganNiang.show(); } }
Test
new A big wine stall, calling the show() method twice is equivalent to selling wine twice.
public class Demo { public static void main(String[] args) { DaBen daBen = new DaBen("女儿红"); daBen.show(); System.out.println(); System.out.println(); daBen.show(); } }
It can be seen here that the output results of the first time selling wine and the second time selling wine are different, because every time you sell wine, you have to go to the godmother’s tavern to get it. liquor. When Da Ben came to get the wine for the first time, he informed his godmother that I was here to set up the stall. Later, the godmother already knew that Da Ben was coming, so there was no need to notify him when he got the wine again.
The above is the detailed content of How to implement the proxy pattern in Java design patterns. 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

AI Hentai Generator
Generate AI Hentai for free.

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 Random Number Generator in Java. Here we discuss Functions in Java with examples and two different Generators with ther examples.

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
