摘要: 抽象工厂模式(Abstract Factory)定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体的类.   抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向Client端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据LSP原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而不是这些抽象产品的实例。换言之,也就是这些抽象产品的具体子类的实例。工厂类负责创建抽象产品的具体子类的实例。 阅读全文
posted @ 2014-05-13 14:38 火與劍 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 解决在EF框架调用存储过程出现问题:调用EF的存储过程报“存储区数据提供程序返回的数据读取器所具有的列数对于所请求的查询不够”问题的方法 阅读全文
posted @ 2013-10-10 15:43 火與劍 阅读(5306) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化那一个类。工厂方法使一个类的实例化延迟至其子类。因为简单工厂模式一定程度上会违背开方-封闭的原则,但工厂方法由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点,工厂方法模式是简单工厂模式的进一步抽象与推广,还有工厂方法更复杂的层次结构,可以应用于产品结果复杂的场合。 阅读全文
posted @ 2012-11-30 17:11 火與劍 阅读(732) 评论(9) 推荐(1) 编辑
摘要: 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 阅读全文
posted @ 2012-11-27 11:27 火與劍 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 半双工通信,即Half-duplex Communication。这种通信方式可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。也就是说,通信信道的每一段都可以是发送端,也可以是接收端。 用python创建半双工的聊天程序. 阅读全文
posted @ 2012-08-21 10:02 火與劍 阅读(1406) 评论(0) 推荐(0) 编辑
摘要: 这阵子在公司折腾一个ActiveX控件的项目,主要的功能是处理扫描档的图像信息,然后再上传到指定的服务器上面.控件的开始测试阶段时,功能一切都正常.但后来 客户的内网访问设置了CA证书的检测,电子文档就不能上传到服务器(没有通过CA证书认证).为了修改控件项目,我研究了一下数字证书SLL的原理.   SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。一般的应用都是单向认证,如果应用场景要求对客户来源做验证也可以实现成双向认证。 阅读全文
posted @ 2012-08-16 22:31 火與劍 阅读(5191) 评论(0) 推荐(1) 编辑
摘要: Python list、tuple、dict区别,list()函数与tuple()函数的区别使用 阅读全文
posted @ 2012-07-11 10:44 火與劍 阅读(32982) 评论(1) 推荐(0) 编辑
摘要: 最近开始学习Python,在网上寻找一下比较好的IDE.因为以产用C#做开发的,用Visual Studio作为IDE,鉴于用惯了VS这么强大的IDE,所以对IDE有一定的依赖性. Python的IDE也有不少,网上也有很多介绍. 我自己选择了国产 Python IDE:UliPad.这个IDE本身就是用 Python+wxPython编写的,小巧,功能全,特别适合Python初学者。 阅读全文
posted @ 2012-07-10 10:08 火與劍 阅读(1828) 评论(2) 推荐(0) 编辑
摘要: 之前在做winform应用的时候,使用多线程控制界面上控件信息,时常碰到InvalidOperationException这个异常!这个异常的出现多数情况是由于worker线程(子线程)修改主线程控件(或对象)的属性而导致的非法操作。这是因为.net 2.0以后加强了安全机制,不允许在winform中直接跨线程访问控件的属性。参照网上的例子,自己总结了一下解决的方法: 一.我们在窗体加载的时候Form1_Load()方法中加一句代码:private void TESTThreadForm _Load(object sender, EventArgs e){Control.CheckFo... 阅读全文
posted @ 2012-05-29 22:44 火與劍 阅读(2910) 评论(0) 推荐(0) 编辑