应用抽象工厂+反射实现通用数据源的设计(三)

网友投稿 524 2022-08-31

应用抽象工厂+反射实现通用数据源的设计(三)

应用抽象工厂+反射实现通用数据源的设计(三)

九:UI层

通过反射实现时,得自动添加以下的文件:

如果要换成Access数据库时需要考入的文件:

改配置文件:

private StudentManager stuMgr = null; public Form1() { InitializeComponent(); stuMgr = new StudentManager(); } private void Form1_Load(object sender, EventArgs e) { gvStudent.DataSource = stuMgr.GetAllStudents(); } private void btnQuery_Click(object sender, EventArgs e) { gvStudent.DataSource = stuMgr.GetStudentByName(txtName.Text); } private void btnAdd_Click(object sender, EventArgs e) { Student student = new Student(); student.Sname = txtName.Text; student.StuAdd = txtAddr.Text; student.StuSex = txtSex.Text; if (stuMgr.AddStudnet(student)) { gvStudent.DataSource = stuMgr.GetAllStudents(); } else { MessageBox.Show("添加失败!!"); } }

总结:

抽象工厂的优点1、隔离了具体类的生成,客户不需要知道怎样生成了每一个具体产品,什么时间生成的。它将客户与具体的类分离,依赖于抽象类,耦合性低。 2、一个产品族中的多个对象被设计成一起工作,它能够保证客户端始终只使用一个产品族中的对象。这对一些需要根据当前环境来决定其行为的软件系统来说,是非常实用的一种设计模式。  3、它有利于更换产品系列,由于客户端只依赖于抽象类,具体类也被写到应用程序配置文件中,更换产品系列时,只须更改一下具体工厂名就行了。

抽象工厂的缺点        难以支持新种类的产品。难以扩展抽象工厂以生产新种类的产品。这是因为抽象工厂接口确定了可以被创建的产品集合,支持新种类的产品就需要扩展该工厂接口,这将涉及抽象工厂类及其所有子类的改变。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ERP仓库管理系统查询(十)
下一篇:Go语言标准库之log介绍(Go语言基础)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~