惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
Security Latest
Security Latest
S
Secure Thoughts
H
Heimdal Security Blog
The Last Watchdog
The Last Watchdog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security Affairs
PCI Perspectives
PCI Perspectives
C
CERT Recently Published Vulnerability Notes
C
CXSECURITY Database RSS Feed - CXSecurity.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
有赞技术团队
有赞技术团队
爱范儿
爱范儿
腾讯CDC
P
Privacy & Cybersecurity Law Blog
量子位
T
Threat Research - Cisco Blogs
V
V2EX
S
Schneier on Security
P
Proofpoint News Feed
美团技术团队
Apple Machine Learning Research
Apple Machine Learning Research
Forbes - Security
Forbes - Security
The Hacker News
The Hacker News
月光博客
月光博客
C
Cybersecurity and Infrastructure Security Agency CISA
Schneier on Security
Schneier on Security
L
LINUX DO - 最新话题
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
S
SegmentFault 最新的问题
G
GRAHAM CLULEY
人人都是产品经理
人人都是产品经理
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - 叶小钗
罗磊的独立博客
WordPress大学
WordPress大学
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
Cisco Blogs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tenable Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
W
WeLiveSecurity
V
Vulnerabilities – Threatpost
Last Week in AI
Last Week in AI
Google DeepMind News
Google DeepMind News
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - 雪美·考拉

创建自己的Web Helper 在WebMatrix中使用数据库 理解WebMatrix工作台(四) 理解WebMatrix工作台(三) 理解WebMatrix工作台(二) 理解WebMatrix工作台 使用模板创建站点 Web应用程序库 启动WebMatrix 建立你的第一个WebMatrix程序 WebMatrix的安装 Web栈介绍 模式的一次简单尝试 JavaScript中高效字符串拼接 MS.SQL Server 2005安装问题追踪总结 [导入]Flash CS4 初用体验 给总理的信 [导入]国外Flash源码的汉化问题 [导入]Windows XP下搭建IIS+PHP+MySql+Zend Debugger [导入]ADOBE CREATIVE SUITE 4 中文全套 [导入]Visual Studio 2008 对 JQuery 的智能感知支持!
[导入]重构出来的“简单工厂模式”
雪美·考拉 · 2009-02-26 · via 博客园 - 雪美·考拉

[导入]重构出来的“简单工厂模式”

热度: 做了事,然后碰到问题,改掉之前的——这很正常。但是如何能改的少,改的更巧,就成了技术领域一直在探究总结的。对于,程序的开发设计架构模式上,很多前人已经做过这方面的事情了,而这些事情现代人很是注重,并将之形成知识体系,这一体系慢慢构成了一个领域——设计模式(Design & Patterns)。 能够改的少,这就是低耦合的体现;能够改的巧,这则是封装的体现了。 我做Web开发,总要做个计数器吧,应该很Easy,这本身没啥好说的。可是想想数据放到那里呢?哪里都可以呀:文本文件、Xml、数据库文件(.mdb、.xls……)、数据库系统……,看着用呗!是啊,我就遇到过这样的问题,本来是放到Txt里的,后来领导说“要看到每天的分时统计”,需求的变化总是存在的,我是欢迎变化的——这样才证明我有可用的地方,不至于在经济危机时担心自己下岗吧;而且,更多的需求变化能够催使我完成更好更完善的系统。 恩,还放到Txt里也是没问题的,但是效率肯定没有数据文件好,不过先应付着吧,继续FSO编写代码来做每天的分时记录。但是,文本总是有文件大小的限制,所以采取保存2天的记录,然后删除之前的。呵呵,差点写死我,好后悔当初没用数据文件来做,相比之下用Xml也是很不错的选择!至少XPath能省我很大力气,比写正则式好多了,以后有机会再改吧! 凑合交上来任务!3天,没过3天,领导又来了“我看别人的网站能具体看到某天的历史记录,咱这个不行么?”我靠,你要当然行了——淡定!我是欢迎变化的需求的嘛………… 得,改吧,用Access吧!修改一番,总算消停2个月了!一件可怕的事情发生了,Web被挂马了,而当初*.mdb为了防止数据库被下载也改成了*.asp,完,也被挂上了!!!!再一杀毒,hoho~~~天知道,被杀后的Access文件头坏掉了!怎么发生挂马的先不提,立刻意识到:我咋当初就不用SqlServer呢!!!! 再改!!!好容易重写了一个Sql版的,这下可以放心了吧,单位以外通知“因数据库服务器资源紧张,以下部门不再提供数据库服务。”结果,我又是那个幸运的人!!!! ………… 上帝呀,虽然我不相信你的存在,但是我真想跟你要一个可以杀人的指标!我相信世界上不会有比我再衰的人了,但是这种反复无常的衰事人活着就总会碰到的。而这件给我的启发是:我能不能把之前所写过的那些不同数据源版本的东西都放到一起,然后客观环境变化时,你要啥我提供啥,但是只要做一点小的修改就好呢? 很快思路出来了: string DataProvide = "Sql"; switch (DataProvide.ToLower()) { case "sql": return Sql_DataProvide; case "txt": return Txt_DataProvide; case "mdb": return Mdb_DataProvide; } 但是,这么多类型怎么可以在一个函数里返回呢?呵呵,如果都是一家子就可以了对吧? 我们需要: public class DataProvide {}   public class Sql_DataProvide : DataProvide{} public class Txt_DataProvide : DataProvide {} public class Mdb_DataProvide : DataProvide{} 这样我们就可以,完善最一开始的代码了: public DataProvide SetConnection(string ProviderFlag) { switch (ProviderFlag.ToLower()) [...]
文章来源:http://www.e3card.cn/blog/?p=52

posted on 2009-02-26 22:56  雪美·考拉  阅读(256)  评论()    收藏  举报