相信大家知道打印机,打印机有许多的牌子,国内外的。
假如有四种打印机 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
{
....
}
------解决方案--------------------------------------------------------
可以设计一个抽象打印机 打印之类的一些关键方法设计为接口