您的位置:首页 > 其它

Patterns in SOME –Factory Method

2007-03-01 16:18 471 查看
Code in C#:
[align=left] [/align]
[align=left]namespace FactoryMethod_DesignPattern[/align]
[align=left]{[/align]
[align=left] using System;[/align]
[align=left] [/align]
[align=left] // These two classes could be part of a framework,[/align]
[align=left] // which we will call DP[/align]
[align=left] // ===============================================[/align]
[align=left] [/align]
[align=left] class DPDocument [/align]
[align=left] {[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] abstract class DPApplication [/align]
[align=left] {[/align]
[align=left] protected DPDocument doc;[/align]
[align=left] [/align]
[align=left] abstract public void CreateDocument();[/align]
[align=left] [/align]
[align=left] public void ConstructObjects()[/align]
[align=left] {[/align]
[align=left] [/align]
[align=left] // Create objects as needed[/align]
[align=left] // . . .[/align]
[align=left] [/align]
[align=left] // including document[/align]
[align=left] CreateDocument();[/align]
[align=left] } [/align]
[align=left] abstract public void Dump();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] // These two classes could be part of an application [/align]
[align=left] // =================================================[/align]
[align=left] [/align]
[align=left] class MyApplication : DPApplication [/align]
[align=left] {[/align]
[align=left] override public void CreateDocument()[/align]
[align=left] {[/align]
[align=left] doc = new MyDocument(); [/align]
[align=left] } [/align]
[align=left] [/align]
[align=left] override public void Dump()[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("MyApplication exists");[/align]
[align=left] }[/align]
[align=left] } [/align]
[align=left] [/align]
[align=left] class MyDocument : DPDocument [/align]
[align=left] {[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Summary description for Client.[/align]
[align=left] ///</summary>[/align]
[align=left] public class Client[/align]
[align=left] {[/align]
[align=left] public static int Main(string[] args)[/align]
[align=left] {[/align]
[align=left] MyApplication myApplication = new MyApplication();[/align]
[align=left] [/align]
[align=left] myApplication.ConstructObjects();[/align]
[align=left] [/align]
[align=left] myApplication.Dump();[/align]
[align=left] [/align]
[align=left] return 0;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left] [/align]
[align=left]Code in SOME:[/align]
[align=left] [/align]

CDPDocument

CMyDocument :CDPDocument

ADPApplication ->CDPDocument[m_doc]
a_CreateDocument()
ConstructObjects()
a_Dump()

CMyApplication :ADPApplication
o_CreateDocument()
o_Dump()

CClient
main

CClient.main
{
CMyApplication myApplication.();
myApplication.ConstructObjects<ADPApplication>()
{
CreateDocument<CMyApplication>() //override method define
{
m_doc<CMyDocument>.(); //"m_doc = new MyDocument()"
};
};
myApplication.Dump()
{
//MyApplication exists //comment
};
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: