Home > Net >  How to change my existing code and make it more scalable?
How to change my existing code and make it more scalable?

Time:10-08

Requirements: by using different modules (MODULE) and function (FUNC) and data to generate different packet
The existing code is as follows:
 
The namespace Builder
{
/*
* requirements: through the use of different modules, (MODULE) and functions, and data (FUNC)
* generate different packet
*/
///& lt; Summary>
No.///module
///& lt;/summary>
Public enum MODULE {MODULE1, MODULE2, MODULE3, MODULE4}
///& lt; Summary>
No.///function
///& lt;/summary>
Public enum FUNCTION {FUNC1, FUNC2 FUNC3 - a non-class FUNCTION, FUNC4}

///& lt; Summary>
///generator interface
///& lt;/summary>
Public interface IBuilder
{
Object the Generate ();
}
///& lt; Summary>
///data generator
///& lt;/summary>
Public abstract class DataBuilder: IBuilder
{
Protected the MODULE M=MODULE. MODULE1;
Protected FUNCTION F=FUNCTION. FUNC1;
Protected string Datas=string. The Empty;
Public DataBuilder (MODULE m, the FUNCTION f, string datas)
{
M=M.
F=F;
Datas=Datas;
}
///& lt; Summary>
///build - abstract member function
///& lt;/summary>
///& lt; Returns>
Protected the abstract Object the Build ();

# region IBuilder members
Public object the Generate ()
{
Return this. The Build ();
}
# endregion

}

//MOUDLE1 generator
The namespace MODULE1
{
///& lt; Summary>
///once FUNCTION1 generator
///& lt;/summary>
Public class DataBuilder1: DataBuilder
{
Public DataBuilder1 (MODULE m, the FUNCTION f, string datas)
: base (m, f, datas)
{
}
Protected override the object the Build ()
{
Return m. oString () + "" + F.T oString () +" "+ Datas;
}
}
///& lt; Summary>
///FUNCTION2 generator
///& lt;/summary>
Public class DataBuilder2: DataBuilder
{
Public DataBuilder2 (MODULE m, the FUNCTION f, string datas)
: base (m, f, datas)
{
}
Protected override the object the Build ()
{
Return m. oString () + "" + F.T oString () +" "+ Datas;
}
}

Public class DataBuilder3: DataBuilder
{
Public DataBuilder3 (MODULE m, the FUNCTION f, string datas)
: base (m, f, datas)
{
}
Protected override the object the Build ()
{
Return m. oString () + "" + F.T oString () +" "+ Datas;
}
}

Public class DataBuilder4: DataBuilder
{
Public DataBuilder4 (MODULE m, the FUNCTION f, string datas)
: base (m, f, datas)
{
}
Protected override the object the Build ()
{
Return m. oString () + "" + F.T oString () +" "+ Datas;
}
}
}
//MODULE2 generator
The namespace MODULE2
{
Public class DataBuilder1: DataBuilder
{
Public DataBuilder1 (MODULE m, the FUNCTION f, string datas)
: base (m, f, datas)
{
}
Protected override the object the Build ()
{
Return m. oString () + "" + F.T oString () +" "+ Datas;
}
}

Public class DataBuilder2: DataBuilder
{
Public DataBuilder2 (MODULE m, the FUNCTION f, string datas)
: base (m, f, datas)
{
}
Protected override the object the Build ()
{
Return m. oString () + "" + F.T oString () +" "+ Datas;
}
}

Public class DataBuilder3: DataBuilder
{
Public DataBuilder3 (MODULE m, the FUNCTION f, string datas)
: base (m, f, datas)
{
}
Protected override the object the Build ()
{
Return m. oString () + "" + F.T oString () +" "+ Datas;
}
}

Public class DataBuilder4: DataBuilder
{
Public DataBuilder4 (MODULE m, the FUNCTION f, string datas)
: base (m, f, datas)
{
}
Protected override the object the Build ()
{
Return m. oString () + "" + F.T oString () +" "+ Datas;
}
}
}

The namespace MODULE3
{
.
.
.
.
}

The namespace MODULE4
{
.
.
.
.
}
///& lt; Summary>
///generator context
///& lt;/summary>
Public static class BuilderContext
{
Private static IBuilder GetBuilder (MODULE m, the FUNCTION f, string datas)
{
IBuilder builder=null;
The switch (m)
{
Case MODULE. MODULE1:
The switch (f)
{
Case FUNCTION FUNC1:
Builder=new MODULE1. DataBuilder1 (m, f, datas);
break;
Case FUNCTION FUNC2:
Builder=new MODULE1. DataBuilder2 (m, f, datas);
break;
Case FUNCTION FUNC3 - a non-class FUNCTION:
Builder=new MODULE1. DataBuilder3 (m, f, datas);
break;
In case the FUNCTION. FUNC4:
Builder=new MODULE1. DataBuilder4 (m, f, datas);
break;
Default:
break;
}
break;
Case MODULE. MODULE2:
The switch (f)
{
Case FUNCTION FUNC1:
Builder=new MODULE2. DataBuilder1 (m, f, datas);
break;
Case FUNCTION FUNC2:
Builder=new MODULE2. DataBuilder2 (m, f, datas);
break;
Case FUNCTION FUNC3 - a non-class FUNCTION:
Builder=new MODULE2. DataBuilder3 (m, f, datas);
break;
In case the FUNCTION. FUNC4:
Builder=new MODULE2. DataBuilder4 (m, f, datas);
break; nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
  •  Tags:  
  • C#
  • Related