我有一个要求以各种格式保存图像文件。 格式列表可能会经常更改,所以我希望这种保存会非常可扩展。 此外,保存可以发生在许多地方(硬盘,FTP,HTTP等)。保存位置的列表也将经常改变。设计模式适合任务
我想我会使用基底图像类和很多派生类每种格式:
ImageBase {}
JpegImage : ImageBase {}
TiffImage : ImageBase{}
和处理每个子类中适当地保存到格式。 这是一个很好的设计desicion?
另外,我怎样才能附加一个可扩展的保存位置机制(Ftp,文件共享等)?
我想是这样的:
var image=ImageBase.GetImageFromDisk(path);
//some casting to subclass maybe??
var tiffImage=image as TiffImage;
tiffImage.Location=new FtpLocation();//not sure if this is a good idea
tiffImage.Save();
这里的问题是,具体的影像实现不应该知道或关心的保存位置。 在图像子类上调用Save();
时,我想将作品委托给某个类,如FtpLocation
。
请指教如何把碎片放在一起。
谢谢。
瓦伦丁。
女士们是不是可以回答这个问题? ;) – 2009-01-24 08:26:35