反射实现抽象工厂

  上篇我们说了接口工厂,接下来我们看看抽象工厂

     抽象类用abstract修饰,

     抽象类不能被实例化,抽象方法必须声明在抽象类中,抽象类型不一定不需存在抽象方法,具体派生类必须覆盖基类的抽象方法,抽象派生类可以覆盖基类的抽象方法也可以不覆盖

     这样我们就实现了在基类中添加error方法,子类中无需添加,只需要传error信息就行

     调用方法:

    ICarStract carStract = TcFactory_.GetCarInstance("BenzStract");
        carStract.run();
        carStract.stop();
        carStract.error("BenzStract ");       --基类的error方法

--------------------------

public class TcFactory_

{    

  public TcFactory_()    

  {         //         //TODO: 在此处添加构造函数逻辑         //    

  }    

  public static ICarStract GetCarInstance(string className)    

  {        

    ICarStract car = null;        

    Type type = Type.GetType(className);        

    car = (ICarStract)Activator.CreateInstance(type);        

    return car;    

  }

}

public class BenzStract : ICarStract

{    

  public override void run()    

  {        

    HttpContext.Current.Response.Write("BenzStract run<br/>");    

  }

  public override void stop()    

  {        

    HttpContext.Current.Response.Write("BenzStract stop<br/>");    

  }    

  public void testBenz()    

  {        

    HttpContext.Current.Response.Write("BenzStract test<br/>");    

  }

}

public class BmwStract : ICarStract

{

    public override void run()    

  {        

    HttpContext.Current.Response.Write("BmwStract stop<br/>");    

  }

    public override void stop()    

  {        

    HttpContext.Current.Response.Write("BmwStract stop<br/>");    

  }

}

public abstract class ICarStract

{    

  public abstract void run();    

  public abstract void stop();    

  public void error(string str)    

  {        

    HttpContext.Current.Response.Write(str + "error<br/>");    

  }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/ajun/archive/2012/12/13/2815957.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值