Design Patterns: Solidify Your C # Application Arch

Source: Internet
Author: User
Design Patterns: Solidify Your C # Application Architecture with Design Patterns Chinese edition (part 1) optimizer)

Keyword design pattern singleton strategy decorator composite state

SOURCE http://msdn.microsoft.com/library/default.asp? Url =/library/en-us/dnmag01/html/PATTERNS. asp

Design Patterns: Solidify Your C # Application Architecture with Design Patterns Chinese edition (part 1)
Author: Samir Bajaj
Translator: Glory
[Translation: C # Advanced article. The translator simply sorts out the C # examples provided by Samir (some of the code provided by the author cannot be compiled in the translator's environment) and compiles the corresponding C ++ example, put them in comments for readers to compare. All C # and C ++ debugging environments are Microsoft Visual Studio. NET 7.0 Beta2]
Decorator
Customer applications often need to enhance the services provided by some class methods. You may need to insert some pre-processing and post-processing code before and after the method call. One way to achieve this is simply to make different method calls. However, this method is not only troublesome, but is not conducive to the expansion of the framework. For example, if different customers obviously want to execute different pre-processing and post-processing tasks, the application logic will become obscure and difficult to maintain due to conditional statements. The problem is how to enhance the functions provided by the class without affecting the customer code, and the Decorator mode is exactly what is needed.
Let's look at an example of a class with the remote file transfer function. Such class code may be shown in Table 5.
Table 5
Class FileTransfer
{
Public virtual void Download (string url, byte [] data, int size)
    {
// Download an object
    }
Public virtual void Upload (string url, byte [] data, int size)
    {
// Upload a file
    }
}
Assume that a client program is interested in this function. In addition to the ability to upload and download files, the customer's application also wants to write all file transfer requests and perform access checks into the log. One implementation method based on the decorator mode is to derive a class from the FileTransfer class, reload the virtual method, and insert additional code before or after the base class method is called. See Table 6.

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.