Adoption of design patterns in ANDROID-behavior patterns 1 responsibility chain model
The purpose of the responsibility chain mode is to allow multiple objects to process requests, so as to avoid coupling between request senders and receivers. Connect these objects into a chain and pass the request along the chain until an object processes it. So that multiple objects have the opportunity to process the re
without modifying the existing code.
The difference between using wrapper mode and using inheritance: Using wrapper mode to dynamically add behavior, using inheritance is static and is determined at compile time. Assuming that the inheritance pattern is used, you must write a special class for each possible combination of behaviors, that is, the kind of behavior that your code can represent is determined by the class you are designing, and the customer cannot get a combination of
What is strategy? For example, we want to go to a place to travel, can be based on the actual situation to choose the route of travel.1, the definition of the policy model
If you don't have time but don't care about money, you can choose to take a plane.If there is no money, you can choose to take the bus or train.If you are poorer, you can choose to ride a bike.In the program design, we also often encounter a similar situation, to achieve a certain
Command mode, which is the mechanism that encapsulates a common operation.
If you are familiar with C or PHP, you may have encountered the command, which is equivalent to a callback (callback) in the program. Callbacks typically use a function pointer or data structure such as a string and array implementation in PHP, which is an abstraction over a method invocation that absorbs all the object-oriented benefits: compositing, inheritance, and processing.
For example, the book "
change.Beverage.prototype.customerWantsCondiments =function(){ return true;//seasoning is required by default }; Beverage.prototype.init=function(){ this. Boilwater (); this. Brew (); this. Pourincup (); if( this. customerwantscondiments ()) {//If the hook returns true, the seasoning is required this. Addcondiments (); } };Do you really need to "inherit"?The template method pattern is one of the few inheritance-based desig
developers, never care about these behaviors. The code is as follows:JavaScript var address = (function// address module function(obj) { Address.refresh (obj); }); return { function(avatar) { console.log (' Refresh receipt address List ');} } ;}) ();Advantages and Disadvantages
Supports simple broadcast communication and automatically notifies all subscribed objects;
After page loading publishers can easily have a dynamic association wi
A learning journey based on design patterns
-----Appearance Mode
1,
Initial appearance Mode
Stock:EachInvestors directly purchase various types of stocks (common)
Fund: Investors deal with experts to allow expertsAgree to selectStock to be purchased (appearance)
2,
What is appearance mode?
Provides a consistent interface for a group of interfaces in the subsystem,F A C A D EMode defines a hi
A learning journey based on design patterns
-----
Observer
Mode
1,
Initial observer Mode
In a time when the network was not so developed, many people wanted to know that the weather forecast for the next day had to watch live TV at the specified time, but sometimes they wanted to watch the weather and found that live TV had passed. This is really an unpleasant thing.
Based on this situation, M
This article references:: Geekband classroom content, Instructor: Li Jianzhong: Network information: http://blog.csdn.net/hguisu/article/details/7556625This article only as own study note, does not represent the authority, because is the beginner, has the mistake to please everybody correct, thanks.1, what is the Observer mode, where are the application sites?The Observer pattern (sometimes called the publish-subscribe subscribe> mode, model-view view> mode, source-listener listener> mode, or sl
The essentials and patterns of software design (version 2nd) is the book on software design and design patterns published by Zhang Yi of garden in April this year. I got it in late May and read a chapter every night, after reading chapter 28 of the book on and off last night
on request: Anyone who has used a servlet knows that, in addition to having a corresponding configuration in Web. xml, it is necessary to inherit an abstract class called httpservlet, and rewrite the Doget and Dopost methods (and, of course, just rewrite the service method).Many of the methods in the request object are used when the internal components interact with each other, such as setcomet, setrequestedsessionid, etc. (not listed here). These methods are not exposed externally, but must b
Php design patterns-Abstract factory patterns
Provides an interface for creating a set of related or interdependent objects without specifying their specific classes.
Features
Abstract Factory is a common software design model that provides a unified creation interface for a product family. When you need a seri
) {objectstructure o=new objectstructure (); Attach (New Concreteelementa ()); O. Attach (New Concreteelementb ()); ConcreteVisitor1 v1=new ConcreteVisitor1 (); ConcreteVisitor2 v2=new ConcreteVisitor2 (); O.accept (v1); O. Accept (v2);//If the newly added operation is//concretevisitor3 v3=new ConcreteVisitor3 () as the following code; O.accept (v3);}Okay, now think about what time we use this model? In general, when the data structure is relatively stable, we use this pattern to encode, t
relatively single; when we find that a class takes on too many tasks, Too miscellaneous should assign some responsibilities to other classes, so as to guarantee the high cohesion of the design scheme
Controller mode: The controller mode requires that the coordinate processing system messages be assigned to different control classes
Polymorphism: When a duty behaves differently in different derived classes, we can use polymorphic
parametric construct, generates an object A through the new keyword, and then produces a new object T by A.clone (), then the constructor is not used when the object is copied. Be executed. That is, only one construction method is executed during the copy process.Clone vs final two pair of enemies. The object's clone is caused by a conflict with the final property within the object. In the programmer class above, modify to private final address address; Remove Get,set method, proto.address= (Ad
(); Ocar.excet (); }}Template method Pattern Applicable scenario
One-time implementation of an invariant part of the algorithm, and the variable behavior is left to subclass to achieve.
The public behavior in each subclass should be extracted and centralized into a common parent class to avoid code duplication. This is a good example of what Opdyke and Johnson described as "re-factoring to generalize." First identify the differences in the existing code and separate the differen
Design Patterns learning notes -- Abstract Factory patterns
After several days of struggle, I finally understood some differences between the abstract factory and the factory method model.
Abstract Factory is similar to the factory method mode. They all follow the open-closed principle and use the factory interface to create a derived factory and then create th
Design Patterns ---- adapter patterns
Converts an interface of a class to another interface that the customer wants. The Adapter mode allows the classes that cannot work together due to incompatibility of interfaces to work together.Solved problems:
That is, the Adapter mode makes those classes that cannot work together due to interface incompatibility work tog
initialize, with the syntax of the Object.defineproperties or Object.defineproperty method type. It allows you to set properties such as enumerable, writable, or configurable.If you want to implement prototype mode yourself, instead of using object.create directly. You can use code like the following to achieve the above example:varVehicleprototype = {init:function(Carmodel) { This. model = Carmodel; }, Getmodel:function() {console.log (' vehicle mould is: ' + This. model); }};functionVehicle (
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.