编写容易被维护的代码(2)

这次在编码前我们先把文件划分一下:
Interface.cs 用来定义程序要提供的功能;
DefaultBiz.cs 用来进行计算
View1.cs/View2.cs 则用来打印数据。

下面是Interface.cs 的内容:

using System;

namespace Castle.Demo
{
    
public enum MathMethod :int {Add,Multiply};
    
public interface IView
    
{
        
void printResult(MathMethod math,int[] data,long result);
    }

    
public interface IBiz {
        
long getResult(int[] data,MathMethod math);
    }

    
public interface IMethod {
        
long calculate(int n1,int n2);
    }

}

下面是DefaultBiz.cs 的内容:
namespace Castle.Demo {
    
using System;

    
public class DefaultBiz:IBiz {
        
IBiz 成员

    }


    
internal class MultiplyOperator:IMethod {
        
public long calculate(int n1,int n2) {
            
return n1*n2;
        }

    }

    
internal class AddOperator:IMethod {
        
public long calculate(int n1,int n2) {
            
return n1+n2;
        }

    }

    
internal class MathFactory {
        
public static IMethod getStrategy(MathMethod math) {
            
if(math==Castle.Demo.MathMethod.Multiply) return new MultiplyOperator();
            
else return new AddOperator();
        }

    }

}
下面是View1.cs:
namespace Castle.Demo
{
    
using System;

    
public class View1:IView
    
{
        
public View1()
        
{
        }

        
IView 成员
    }

}

View2,cs也很简单:
namespace Castle.Demo {
    
using System;

    
    
public class View2:IView {
        
public View2() {
        }

        
IView 成员
    }

}

经过以上处理,代码的逻辑比较清楚了。但是要增加一个新的运算规则还是要修改MathFactory并且添加响应的算法。所以下一章我们会借助IoC来达到更好的效果。
请继续留意我的后续文章。。。
posted @ 2005-09-28 18:51  成为-行动-拥有(BeDoHave)  阅读(402)  评论(0)    收藏  举报