using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Io.Github.Kerwinxu.LibShapes.Core.Print { public abstract class AbstractPrintItemFactory : IPrintItemFactory { /// /// 用这个来保存PrintItem /// protected Dictionary dict_printItem = new Dictionary(); public PrintItem GetPrintItem(string name) { if (dict_printItem.ContainsKey(name)) { return dict_printItem[name]; } return null; //throw new NotImplementedException(); } /// /// 删除,受到保护的,外部不能随便调用的。 /// /// protected void deletePrintItem(string name) { dict_printItem.Remove(name); //throw new NotImplementedException(); } /// /// 外部不能随便的增加 /// /// /// protected void registerPrintItem(string name, PrintItem printItem) { if (! dict_printItem.ContainsKey(name)) { // 没有才添加 dict_printItem[name] = printItem; } //throw new NotImplementedException(); } public string registerPrintItem(PrintItem printItem) { string id = getNoRepeatId(); // 先取得一个不重复的id registerPrintItem(id, printItem); // 注册 return id; // 返回这个id } public abstract string getNoRepeatId(); } }