抽象工厂模式 update.ppt

抽象工厂模式 update.ppt

ID:49411235

大小:1.38 MB

页数:25页

时间:2020-02-06

抽象工厂模式 update.ppt_第1页
抽象工厂模式 update.ppt_第2页
抽象工厂模式 update.ppt_第3页
抽象工厂模式 update.ppt_第4页
抽象工厂模式 update.ppt_第5页
资源描述:

《抽象工厂模式 update.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、设计模式--抽象工厂模式抽象工厂模式场景:游戏中场景的切换(晴天/雨天 丛林 石头 道路)数据库的切换抽象工厂模式一个基本做好的项目,部署时临时决定需要将原来使用的Access数据库更换为SqlServer数据库。要做哪些事情?使用的类不同(SqlClient与OleDb空间下)两种数据库的SQL语句细节有不同之处关键字不同等其他不同之处抽象工厂模式等改好后,如果有一天又要用Oracle数据库更普遍的:原来使用SqlServer做的项目,再接到类似项目的时候需要用Oracle库,又要做类似的工作抽象工厂模式cl

2、assUser{privateint_ID;publicintID{get{return_ID;}set{_ID=value;}}privatestring_name;publicstringName{get{return_name;}set{_name=value;}}}classSqlserverUser{publicvoidInsert(Useruser){Console.WriteLine("在Sqlserver中给user表添加一条记录");}publicUserGetUser(intid){Cons

3、ole.WriteLine("在SqlServer中根据id查询User表中的记录");returnnull;}}classMyClass{staticvoidMain(string[]args){SqlserverUsersu=newSqlserverUser();su.Insert(newUser());su.GetUser(1);}}与SqlserverUser耦合抽象工厂模式封装变化点,抽象出接口IUserinterfaceIUser{voidInsert(Useruser);UserGetUser(i

4、ntid);}classSqlserverUser:IUser{publicvoidInsert(Useruser){Console.WriteLine("在Sqlserver中给user表添加一条记录");}publicUserGetUser(intid){Console.WriteLine("在SqlServer中根据id查询User表中的记录");returnnull;}}classAccessUser:IUser{publicvoidInsert(Useruser){Console.WriteLine(

5、"在Access中给user表添加一条记录");}publicUserGetUser(intid){Console.WriteLine("在Access中根据id查询User表中的记录");returnnull;}}抽象工厂模式调用处变为:classMyClass{staticvoidMain(string[]args){IUsersu=newAccessUser();su.Insert(newUser());su.GetUser(1);}}抽象工厂模式一个库中不可能只有这个User表,如果还要对Departm

6、ent表进行管理抽象工厂模式classDepartment{}interfaceIDepartment{voidInsert(Departmentdept);DepartmentGetDepartment(intid);}classSqlserverDepartment:IDepartment{publicvoidInsert(Departmentdept){{Console.WriteLine("在SqlServer中给Department表添加一条记录");}}publicDepartmentGetDepa

7、rtment(intid){Console.WriteLine("在SqlServer中根据id查询Department表中的记录");returnnull;}}classAccessDepartment:IDepartment{publicvoidInsert(Departmentdept){{Console.WriteLine("在Access中给Department表添加一条记录");}}publicDepartmentGetDepartment(intid){Console.WriteLine("在Ac

8、cess中根据id查询Department表中的记录");returnnull;}}抽象工厂模式调用处变为:classMyClass{staticvoidMain(string[]args){IUsersu=newAccessUser();su.Insert(newUser());su.GetUser(1);IDepartmentad=newAccessDepartment();ad.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。