网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
设计模式初学者系列-工厂方法
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式
ull;
                        u = new User();
                        u.UserId = reader["userid"].ToString();
                        u.UserName = reader["uname"].ToString();
                        u.UserPwd = reader["pwd"].ToString();
                        reader.Close();
                    }
                    comm.Parameters.Clear();
                }
                conn.Close();
                return u;
            }
        }

 你看得出来这是针对那种数据的实现么?看不出吧,实现了数据库无关性,将变与不变分开了,客户程序面对着稳定的接口。

工厂方法在DotNet中的演进

第一:我们可以利用反射机制化解switch语句的泥潭,在上面可口可乐的例子中我们可以给工厂方法传入一个类的限定名利用反射产生实例,去掉switch语句。这样还可以去掉子类了

新的实现

public class Creator
………………
public 广告纸 Get广告纸(string className)
{
    Assembly asm = Assembly.LoadFrom(className+”.dll”);
    广告纸 o = asm.CreateInstance (className) as 广告纸;
    return o;
}

  上面所说的两种演进虽然已经失去了工厂方法模式原来的型构,但依然得到我们想要的:封装变化,为客户程序提供稳定的接口,不将需求的变化扩散到客户程序。所以说模式是灵活的,模式要这么多模式要表达的是她们的思想并不是模式的实现形式。

工厂方法和其他模式的关系

与抽象工厂模式:抽象工厂模式实际上是包含了很多工厂方法的特例,抽象工厂模式就是将这些工厂方法阻止起来,利用这些工厂方法创建一系列相关的对象。
模板方法:上一篇中我们描述了模板方法模式,实现模板方法算法中的每一小步就是工厂方法了

总结

在这一篇中我们引出了软件开发的真谛:寻找变化,封装变化。其实我们学习OO,学习设计模式要达到的就是这个目的。将变与不变相分离,将以后的维护点统一、集中起来,不让变化分散在各处。在敏捷开发中有一个名言:拥抱变化。是的,我们不能避免软件开发中的变,如果没有变,我想

  • 上一篇资讯: C#操作RTF文档
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号