编写容易被维护的代码(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);
}
}
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();
}
}
}
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来达到更好的效果。
请继续留意我的后续文章。。。



浙公网安备 33010602011771号