日期:2014-05-20  浏览次数:20721 次

Very simple question
相信大家知道打印机,打印机有许多的牌子,国内外的。
假如有四种打印机 A,B,C,D 他们都可以打印三种不同规格的纸(常用的A4,A3 ;打印彩色用的常用的 铜版纸,花纹纸等)。

 过程是:现在有个小软件,让用户在电脑上选择打印的文档(打印内容),指定打印机(一次打印只选一种牌子的打印机)
开始打印后,纸被打印机打印出来以后,通知软件纸打印出来,然后打印机把纸调到背面,翻面,完成这个过程(把纸调到背面,翻面)
通知软件,纸已经翻面了。

把这个通知信号 通过事件的方式 告诉软件,软件做些逻辑处理;

问题是:如何写这些类,这里写个例子(抛砖引玉): 
abstract class printer //打印机类
{
  //公共属性
  abstract string PrinterName;//打印机的品牌
  ....
 // 方法
  void printinfo(string info) //把需要打印的资料发送给打印机 打印
 {//实现部分省略}
 //事件
 abstract event PrintOut //纸打印出来了触发这个事件,不同的打印机做的逻辑处理不一样,子类实现

 abstract event TurnOver //纸翻面了触发事件,不同的打印机做的逻辑处理不一样,子类实现

}
  class APrinter:printer 
{
  ....
}




------解决方案--------------------
可以设计一个抽象打印机 打印之类的一些关键方法设计为接口