
设计模式
文章平均质量分 83
lmdcszh
学其神而用其形
展开
-
模板模式——多态、虚方法、抽象
分析详见:http://lvxingzhelimin.blog.163.com/blog/static/1707165502011101573020286/using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{原创 2011-11-15 19:31:31 · 529 阅读 · 0 评论 -
向SqlParameter集合数组中添加参数——SQLHelp对数据访问层的优化(一)
这是今天下午忙活半天的成果,但不管怎样吧还是达到了想要的目的:通过集合数据自动添加SqlParameter参数到Command命令中。思路很明确,也很简单,大致的可以分两步。第一步,将用户输入的存储过程参数写入到一个SqlParameter集合数组中;第二步,将SqlParameter集合数组中的参数元素导入到Command命令的Parameters集合中。接下来要做的是分别实现这原创 2012-01-03 17:28:17 · 5373 阅读 · 1 评论 -
.Net平台中虚方法的好处之个人见解
虽然机房收费系统的代码已经写完了,但是对于.net平台的一些机制的认识还是模模糊糊,记得在学习设计模式的时候就遇到了“虚方法”这个概念,但是对于“虚方法”的认识却好似一团迷雾,今天下午花了一个多小时的时间来研究这个小东东,现在总结一下对“虚方法”的认识,如有不合理之处,望各位大牛们多多斧正。 对于虚方法的官方解释比较复杂,这里就用我的理解来个通俗的解释。虚方法是相对于非虚的方法而言原创 2012-02-07 19:39:10 · 3181 阅读 · 6 评论 -
抽象工厂+反射+依赖注入 实现对数据访问层和业务逻辑层的优化
分层思想的一个核心就是部件化,各个层之间是相互独立的,每一层可以随便抽取换成一个其他语言的版本,但只要与相应的接口吻合就行。我用的三层架构大致是这样的,基本的三层就不说了,然后分别为业务逻辑层和数据访问层定义一个接口,由具体的那个层来实现,问题产生了,由谁来指定程序使用哪个具体的对象来实现相应接口?为解决这个问题,我应用的是抽象工厂模式。分别为业务逻辑层和数据访问层添加一个抽象工厂。具体架原创 2012-01-03 11:06:55 · 5790 阅读 · 4 评论 -
重载和重写
面向对象的三大特性:继承、封装、多态。重载和重写是多态的两种表现形式。 重载和重写又有什么区别呢? 1、层次不同: 重写 : 发生在父类和子类之间。 是子类重写父类的方法,具有相同的方法名和方法参数。比如说,父子两人都去吃饭(相同的方法),吃的是面条(参数),父亲饭量大,吃两碗,儿子饭量小,就能吃一碗(实现了吃饭的多态)。 重载: 发生在原创 2012-01-08 14:32:24 · 958 阅读 · 1 评论 -
vb.net下的单例模式
单例模式确保某对象只能实例化一次,因此可以确保程序中所有对象访问同一个对象,但是也存在一个弊端,如,不能解决删除单个对象的问题等,因为缺少实际的开发运用,对性能以及单例的优缺点就不会太明白,这里重点总结一下单例模式的5种拓展实现。 原文详见:http://www.cnblogs.com/psunny/archive/2010/06/18/1760133.html 1 、转载 2011-12-31 15:27:42 · 1846 阅读 · 1 评论 -
VB.NET接口泛型+策略模式+单例模式
在程序中的数据访问层中,经常会遇到返回实体类的情况,而不同的实体类大多具有相似的代码,情况也大致相同:有的是返回实体类的一条记录,有的是返回实体类的集合。这样如果仅按照最简单的写法的话,程序中会出现许多相似的代码,给人一种不舒服的感觉,如果发现一个程序中有许多重复类似的代码,那么就是程序中的坏味道,我们就应该想办法,对这些代码的实质进行抽象,进行优化,那么接下来要总结的接口泛型就是这么一个例子,另原创 2012-01-05 10:11:12 · 2656 阅读 · 5 评论 -
昨天调试数据访问层返回实体类集合的一点感想
昨天用了多半天的时间在实现从数据访问层的DataReader返回实体类集合的功能,如果要是简单的实现不难,但是想通过融入设计模式,然后再用上自己写的SQLHelp,但是用了很长时间还是没有实现。 总结一下原因: 1、将一个循环拆开到两个函数中这种做法本身就有问题。 2、对策略模式+单例模式+接口泛化的理解不够透彻,因此程序写起来思路不是很清晰,一些vb.net的具体原创 2012-01-07 11:32:36 · 1373 阅读 · 1 评论 -
装饰模式中的里氏代换——子类可以代替父类
分析详见:http://lvxingzhelimin.blog.163.com/blog/static/1707165502011101035413741/using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{原创 2011-11-10 15:54:21 · 944 阅读 · 1 评论 -
浅析反射、工厂和配置文件
在任何一种工厂模式中,都无法避免对操作类型的选择,在简单工厂中,判断点存在于简单工厂类中,借助Swith语句来实现;在工厂模式和抽象工厂模式中,判断点存在于客户端。简单工厂模式的优点在于将判断脱离了客户端,但是却违背了“开放封闭原则”,也就是说如果有需求改变时,需要更改应有的类(在简单工厂中添加Switch判断分支)。抽象工厂和工厂模式通过进一步对工厂类抽象出一个公共接口,结合具体子类工厂类,迷补原创 2011-11-08 21:22:21 · 582 阅读 · 1 评论 -
策略模式+简单工厂=强强联合
分析详见:http://lvxingzhelimin.blog.163.com/blog/static/170716550201110991449718/using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;usi原创 2011-11-09 21:22:41 · 1224 阅读 · 1 评论 -
三种工厂模式汇总
http://lvxingzhelimin.blog.163.com/blog/static/170716550201110852956542/原创 2011-11-08 19:10:28 · 504 阅读 · 0 评论 -
观察者模式——依赖倒置
分析详见:http://lvxingzhelimin.blog.163.com/blog/static/1707165502011101655652697/using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{原创 2011-11-16 17:56:31 · 727 阅读 · 0 评论 -
委托对观察者模式的改进
分析详见:http://lvxingzhelimin.blog.163.com/blog/static/1707165502011101655652697/using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{原创 2011-11-16 17:58:52 · 813 阅读 · 0 评论