Ridicule 23 design modes of Object-Oriented Programming

Source: Internet
Author: User

1. Factory-try to catch up with mm. The chicken wings of McDonald's and the chicken wings of KFC are what mm loves. Although the taste is different, whether you take mm to McDonald's or KFC, just say "four chicken wings" to the waiter. McDonald's and KFC are factory for chicken wings production.

Factory model: the customer class and the factory class are separated. A consumer needs a product at any time and only requests from the factory. Consumers can accept new products without modification. The disadvantage is that the factory class must be modified when the product is modified. For example, how to create and provide data to clients.

2, BUILDER-MM is the most love to hear is "I love you" this sentence, to see different places of mm, to be able to use their dialect to say this sentence to her oh, I have a multi-language translation machine.
Every word has a button. When you see mm, you only need to press the corresponding key, and it will be able to say "I love you" in the corresponding language, and foreign mm can also easily get started, this is my "I love
You "builder. (This must be better than the US military's translation server in Iraq)

Construction mode: separates the internal appearance of a product from the product generation process, so that a building process generates product objects with different internal appearances. The construction mode allows the product's internal appearance to change independently, so that the customer does not have to know the details of the product's internal composition. The construction model enforces a step-by-step construction process.

3. Factory method-ask mm to go to McDonald's for a hamburger. Different mm has different tastes. It is annoying to remember every one. I usually use the factory method mode, take the mm to the waiter and say "I want a hamburger". What kind of hamburger should I ask the mm to tell the waiter directly.

Factory method mode: the Core factory category is no longer responsible for the creation of all products. Instead, it submits the specific creation work to the subclass to become an abstract factory role, it is only responsible for providing the interface that must be implemented by a specific factory class, without touching the details of which product class should be instantiated.

4. Prototype-chat with MM via QQ, so I must talk about some affectionate words. I have collected a lot of emotional words, and I just need to copy the words and put them in QQ, this is my prototype. (100 yuan a copy, do you want)

Original Model mode: specify the type of the object to be created by giving a prototype object, and then create more objects of the same type by copying the prototype object. The original model mode allows dynamic addition or subtraction.
There are few product categories, and the product category does not need to have any pre-determined level structure. The original model mode applies to any level structure. The disadvantage is that each class must have a clone method.

5. Singleton-I have 6 beautiful wives. My husband is me. I am sigleton, our husband. All they need to say is "husband, that's me (I had a dream just now. How can this be a good thing)

Singleton mode: Singleton mode ensures that a class has only one instance, and instantiate the instance and provides the singleton mode to the entire system. The Singleton mode can only be used when there is a real "Single Instance" demand.
Package Singleton; <br/>/** <br/> * @ author aqiu <br/> * @ version 1.0 <br/> */<br/> public class singleton {<br/>/** <br/> * volatile dual lock check, make sure that the singleton object is initialized only once and has been multithreading. <Br/> */<br/> private volatile static Singleton; <br/>/** <br/> * private constructor. <Br/> */<br/> private Singleton () {<br/> // todo initialization <br/>}< br/>/** <br/> * obtain the static class method of the singleton object. <Br/> * @ return singleton object. <Br/> */<br/> Public static Singleton getinstance () {<br/> If (Singleton = NULL) {<br/> synchronized (Singleton. class) {<br/> If (Singleton = NULL) {<br/> Singleton = new Singleton (); <br/>}< br/> return Singleton; <br/>}< br/>}
Structural Mode

6. adapter-I met Sarah, a beautiful girl from Hong Kong at a friend's party. But I can't speak Cantonese, and she can't speak Mandarin. I have to turn to my friend Kent for help, as an adapter between me and Sarah, Sarah and I can talk to each other (I don't know if he will play with me)

Adapter (transformer) mode: converts an interface of a class into another interface that the client expects, so that the two classes that cannot work together due to interface mismatch can work together. The adaptation class can return a suitable instance to the client based on the parameters.

7. Bridge: mm in the morning. Good morning. mm in the evening. Good evening. mm in new clothes. Nice clothes. New hair styles, say your hair looks pretty. Don't ask me the question "How to say mm has a new hairstyle in the morning". Just use bridge to combine it.

Bridge Mode: Abstraction and implementation are decoupled so that the two can change independently, that is, the strong association between them becomes weak Association, that is, the combination/aggregation relationship is used between the abstraction and implementation of a software system, rather than the inheritance relationship, so that the two can change independently.

8. Composite-Mary has a birthday today. "You want to give me a gift for my birthday ." "Well, all right, go to the store and pick it for yourself ." "This T-shirt looks pretty, buy it, and it looks nice,
Buy, this package is also good, buy ." "Hey, I bought three items. I only promised to give one gift ." "What, T-shirts and skirts and bags, just like a set, miss, please pack it.
." "……", Mm will all use the composite mode. Will you?

Merging mode: the merging mode organizes objects into the tree structure and can be used to describe the relationship between the whole and the part. The merging mode is a tree structure mode for processing objects. The merging mode shows the relationship between the part and the whole in a tree structure. The merging mode allows the client to view individual component objects in the same way as the compositing objects composed of them.

9. After decorator-Mary finishes her birthday in sarly's turn, do not ask her to pick it up by herself. Otherwise, the meal fee will be finished this month. Take out the photo I took on the top of Huashan last year and write it on the back.
"The best gift is your FITA." Then I bought a photo box in the street Gift Shop (the MM who sells the gift is also very beautiful ), next to Mike, who is engaged in art design, we designed a beautiful box for installation.
Come ......, We are all decorator, and we are all modifying this person. How do you understand this?

Decoration mode: The decoration mode extends the object functions in a transparent way to the client. It is an alternative to the inheritance relationship and provides more flexibility than inheritance. Dynamically adds features to an object, which can be dynamically revoked. A large number of functions are generated by the arrangement and combination of some basic functions.

10. Facade-I have a professional Nikon camera. I like to adjust the aperture and shutter manually. In this way, only the photos I have taken are professional, but mm doesn't understand this. It won't take me a long time to teach. Fortunately
The machine has a facade design mode, which allows you to adjust the camera to the automatic file. You only need to point the camera to the target and press the shutter. Everything is automatically adjusted by the camera, in this way, mm can also use this camera to take a photo for me.

Facade mode: external communication with a sub-system must be performed through a unified facade object. The facade mode provides a high-level interface to make subsystems easier to use. Each subsystem has only one portal class, and this portal class has only one instance, that is, it is a singleton mode. However, the entire system can have multiple portals.

11. flyweight-I sent text messages to mm every day, and my fingers were exhausted. I recently bought a new mobile phone. I can put some frequently-used sentences into my mobile phone. When I use them, I can take them out and add them to the front.
The mm name can be sent without a single word. The shared sentence is flyweight, And the MM name is the extracted external feature, which is used according to the context.

Enjoy mode: flyweight is the most lightweight in boxing. The metadata mode efficiently supports a large number of fine-grained objects in a shared manner. The key to the sharing mode is to distinguish between the internal status and external content.
Status. The internal status is stored in the shared element and will not change with the environment. The external state changes with the change of the environment. The external status cannot affect the internal status. They are independent of each other. Can be shared
The status and the State that cannot be shared are separated from the general class, removing the state that cannot be shared from the class. The client cannot directly create the shared object, but should use a factory object to create the shared object
Shared object. The metadata mode greatly reduces the number of objects in the memory.

12. Proxy-chatting with mm on the Internet always starts with "hi, hello". "Where are you from ?" "How old are you ?" "How tall ?" These words are really annoying. Write a program as my proxy. When I receive these words, I have set up an automatic answer. When I receive other words, I will be notified of the answer, cool.

Proxy mode: the proxy mode provides a proxy object for an object and controls the reference to the source object. An agent is an action taken by one person or institution on behalf of another person or institution. Some situations
In this case, the customer does not want or cannot directly reference an object. The proxy object can serve as an intermediary between the customer and the target object. The client cannot identify the proxy topic object and the real topic object. The proxy mode is acceptable.
I do not know the real proxy object, but only hold an interface of the proxy object. At this time, the proxy object cannot be created as the proxy object, the proxy object must have other roles created and passed in on behalf of the system.

Behavior mode

13. Chain
Responsibleity-I went to the English class at night. So I had to sit in the last row. Wow, I sat in front of several beautiful mm. I found a piece of paper and wrote "Hi, I can be my girlfriend ."
? If you don't want to, please pass it to the front. The paper is uploaded one by one. Unfortunately, the mm in the first row passed the paper to the teacher. I heard it was an old virgin. Run fast!

Responsibility Chain Mode: In the responsibility chain mode, many objects are referenced by each object to its next home.

To form a chain. Requests are transmitted on this chain until an object on the chain decides to process this request. The customer does not know which object on the chain will eventually process this request. The system can
Dynamically re-organize the chain and assign responsibilities. The handler has two options: Take responsibility or push the responsibility to the next house. A request cannot be accepted by any receiving end object.

14. Command-I have a mm family with very strict management and can't meet each other. I had to use her brother to send messages between us. What instructions does she give me, write a piece of paper for her brother to bring to me.
No, her brother sent another command. To thank him, I asked him to eat a bowl of soy sauce. He said, "I also sent command to my sister and three boyfriends, it's your least sign,
.", :-(

Command mode: The command mode encapsulates a request or operation into an object. The command mode separates the responsibility for issuing commands from the responsibility for executing commands and delegates them to different objects. In command mode, either party or
The sender side is independent, so that the requester does not have to know the interface of the recipient, nor how the request is received or whether the operation is executed, when and how it is executed. System
Command revocation is supported.

15. interpreter-I have a "bubble mm Sutra" with various tips on bubble mm, such as the steps to eat western food and the methods to watch movies. When I am dating mm, you only need to create an interpreter and execute it according to the above script.

Interpreter mode: Given a language, the interpreter mode can define a representation of its syntax and provide an interpreter at the same time. The client can use this interpreter to explain sentences in this language. Interpreter Mode
Describes how to explain these statements using schema design after a simple syntax is available. The language mentioned in the interpreter mode refers to any combination that any interpreter object can interpret. In interpreter mode
Defines the hierarchical structure of a command class that represents grammar, that is, a series of combination rules. Each command object has an interpretation method, which represents an interpretation of the command object. Any of the objects in the hierarchical structure of the command object
Any permutation and combination is a language.

16. iterator-I fell in love with Mary and proposed to her desperately.

Mary: "If I want to marry you, I have to agree to my conditions"

Me: "I agree with all the conditions. Let's talk about it"

Mary: "I saw the 1 karat diamond"

Me: "I bought, I bought, are there any other products ?"

Mary: "I saw the villa by the lake"

Me: "I bought, I bought, are there any other products ?"

Mary: "Your younger brother must be 50cm long"

I sat in a chair with a bid in my head, biting my teeth:"
I bought it. I bought it. Is there anything else ?"

......

Iteration sub-mode: the iteration sub-mode can sequentially access an element in the aggregation without exposing the internal representation of the aggregation. The aggregation of multiple objects is called aggregation. Clustering objects can accommodate a group of objects.
Object. The iteration sub-mode encapsulates the iteration logic into an independent sub-object, which is separated from the aggregation itself. The iteration submode simplifies the aggregation interface. Each clustering object can have one or more iterations.
Sub-objects. The iteration status of each iteration can be independent of each other. The iteration algorithm can be independent from the clustering role changes.

17. The mediator-four mm players played mahjong. It was unclear who should pay for each other. Fortunately, I was there and counted the money based on my chips, if you make money, you can get it from me. If you lose the money, you can pay it to me. Everything is OK. You get a phone number of four mm.

Called by mode: The called by mode encapsulates a series of ways in which objects interact, so that these objects do not have to interact explicitly. So that they can be loosely coupled. When the role of some objects changes
Immediately affects the role of other objects. Ensure that these functions can be changed independently of each other. The mediator mode converts the multi-to-many interaction into one-to-many interaction. The mediator mode integrates object behavior and coordination
Abstract: separate objects from other objects in small-scale behavior.

18. Memento-Remember what you said to mm when you chat with several mm at the same time, or mm will be unhappy if it finds out. Fortunately, I have a memorandum, I copied a copy of what I said to the mm and saved it in the memo so that I can view the previous records at any time.

Memorandum mode: A memorandum object is an object used to store snapshots of the internal state of another object. The purpose of the memorandum mode is to catch the state of an object without damaging the encapsulation, and store it externally, in this way, this object can be restored to the stored state when appropriate in the future.

19. Observer-do you want to know our company's latest mm intelligence? Join the company's mm intelligence contact list. Tom is responsible for collecting intelligence. The new intelligence he found does not need to notify us one by one and is directly released to the contact list. We serve as subscribers (observers) you can receive the information in time.

Observer mode: The Observer mode defines a multi-team dependency, allowing multiple observer objects to listen to a single topic object at the same time. When the status of this topic object changes, it notifies all observer objects so that they can automatically update themselves.

20. State-when interacting with MM, you must pay attention to her status. In different states, her behavior may be different. For example, if you ask her to go to a movie this evening, mm, who is not interested in you, will say, "something is going on.
"," Mm, who doesn't hate you but doesn't like it, will say, "Okay, but can I bring my colleagues ?", If you like your mm, you will say, "What time is it? How about watching a movie ?", Of course
If the film is doing well, you can also turn the MM status from dislike to liking.

State mode: State mode allows an object to change its behavior when its internal state changes. This object seems to have changed its class. The State mode encapsulates the behavior of the object in different state pairs.
Every State object belongs to a subclass of an abstract state class. The intention of the state mode is to change the behavior of an object when its internal state changes. The status mode needs
The possible obtained State creates a subclass of the state class. When the system status changes, the system changes the selected subclass.

21. Strategy-for dates with different types of MM, different strategies should be used. Some movies are recommended, some are recommended for snacks, and some are recommended for romance at the seaside, the single goal is to get the attention of mm. There are a lot of strategy in my pursuit of mm.

Policy mode: the Policy mode encapsulates each algorithm into an independent class with a common interface for a group of algorithms so that they can be replaced with each other. The policy mode allows the algorithm to be effective without affecting the client.
. Rule mode separates behavior from environment. The environment class is responsible for maintaining and querying behavior classes, and various algorithms are provided in specific policy classes. Because the algorithm and environment are independent, the increase or decrease of the algorithm will not affect the modification.
To the environment and client.

22. Template
Method -- have you read the classic article "how to persuade a girl to bed? The steps for girls to go to bed are divided into coincidence, deadlock breaking, pursuit, kissing, foreplay, hands-on, caressing, and going in.
Template method, but each step has different practices for different situations. It depends on your Random Response (specific implementation );

Template Method mode: The template method mode prepares an abstract class, implements part of the logic in the form of a specific method and a specific constructor, and then declares some abstract methods to force the subclass to implement the remaining logic. Different subclass
These abstract methods can be implemented in different ways to implement different residual logics. First, create a top-level logic framework, and leave the logic details to specific sub-classes for implementation.

23. Visitor-when Valentine's Day is approaching, each mm will be given a bunch of flowers and a card, but the flowers sent by each mm will be tailored to her own characteristics, each card should also be selected based on personal characteristics.
If you can figure it out, ask the florist and the gift shop owner for a Visitor. Let the florist select a bunch of flowers based on the characteristics of MM and let the gift shop owner select a card based on the characteristics of each person, this makes it light
Loose;

Visitor mode: the visitor mode aims to encapsulate operations that are applied to certain data structure elements. Once these operations need to be modified, the data structure that accepts the operation can remain unchanged. Visitor Mode
It is suitable for systems with relatively undetermined data structures. It frees the coupling between the data structure and the operations acting on the structure, allowing the operation set to evolve relatively freely. The visitor mode makes the addition of new operations very much
Easy: Add a new visitor class. In the visitor mode, the related behaviors are concentrated in a visitor object, rather than scattered into node classes. When using the visitor mode
The browsing logic is placed in the visitor class, rather than in its subclass. The visitor mode allows you to access member classes of different hierarchies over the hierarchical structure of several classes.


For your security, please only open the URL with reliable source

Open website
Cancel


From: http://hi.baidu.com/tianlong1569/blog/item/755bd0337e462f46ac4b5fb1.html

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.