自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HavenZhao的专栏

专注物联网/架构设计/技术管理

  • 博客(5)
  • 资源 (17)
  • 收藏
  • 关注

原创 软件设计原则----合成/聚合复用原则(CARP)

“要尽量使用合成/聚合,尽量不要使用继承。”陈述:在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过向这些对象的委派达到复用已有功能的目的。引入:如我们所知,在面向对象设计里,不同环境中复用已有设计和实现的基本方法:继承。合成/聚合。1、继承复用继承复用通过扩展一个已有对象的实现来得到新的功能,基类明显地捕获共同的属性和

2011-10-29 19:18:37 7428 2

原创 软件设计原则----接口隔离原则(ISP)

“使用多个专门的接口比使用单一的总接口要好”。“一个类对另外一个类的依赖性应该建立在最小的接口上”。陈述:不应该强迫客户依赖于他们不用的方法。一个类的不内聚的“胖接口”应该被分解成多组方法,每一组方法都服务于一组不同的客户程序。例子: Door可以加锁、解锁、而且可以感知自己是开还是关; Door是抽象基类,客户程序可以依赖于抽象而不是具体的实现。

2011-10-26 09:07:59 4157 1

原创 软件设计原则----依赖倒置原则(DIP)

"要依赖于抽象,不要依赖于具体。”“要针对接口编程,不要针对实现编程。”陈述:高层模块不应该依赖于低层模块。二者应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象。分析:所谓“倒置”是相对于传统的开发方法(例如结构化方法)中总是倾向于让高层模块依赖于低层模块而言的软件结构而言的。高层包含应用程序的策略和业务模型,而低层包含更多的实现细节,平台相关细

2011-10-25 15:48:45 4670

原创 软件设计原则----LisKov替换原则(LSP)

“一个软件实体如果使用的是一个基类的话,一定适用于其子类,而且根本不能觉察出基类对象和子类对象的区别。”陈述:子类型(Subtype)必须能够替换他们的基类型(Basetype)Barbara Liskov对原则的陈述:若对每个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对T编写的程序P中,用o1替换o2后,程序P的行为功能不变,则S是T的子类型。通俗地讲

2011-10-21 10:32:56 3957

原创 CPictureEx类实现GIF图片的缩放

关于CPictureEx类,网上很多文章了。但基于CPictureEx展示的GIF图片,却无法缩放,有些不方便。因项目中用到了这个类,而且要实现缩放的功能。于是研究了一下,现将相关代码写下来,仅供参考。分两步:1、主要是修改OnPaint函数,这个方法里使用了BitBlt

2011-10-09 16:20:12 5907 2

EasyModbusJava.jar

用于实现java的modbus,具体资料可以参考官网 import de.re.easymodbus.modbusclient.*; public class run { public static void main(String[] args) { ModbusClient modbusClient = new ModbusClient("127.0.0.1",502); try { modbusClient.Connect(); modbusClient.WriteSingleCoil(0, true); modbusClient.WriteSingleRegister(0, 1234); modbusClient.WriteMultipleRegisters(11, ModbusClient.ConvertFloatToTwoRegisters((float) 123.56)); System.out.println(modbusClient.ReadCoils(0, 1)[0]); System.out.println(modbusClient.ReadHoldingRegisters(0, 1)[0]); System.out.println(ModbusClient.ConvertRegistersToFloat(modbusClient.ReadHoldingRegisters(11, 2))); } catch (Exception e) { } } }

2018-08-15

modbus4j完整源码

modbus4j的源代码,从官网上下载的,2.0.2版本的,里面有modbus4j-2.0.2.jar,以及完整的源代码,实现了modbus rtu、tcp等方式,可以参考学习。

2018-08-15

GUI Design Studio 使用教程

GUI DesignStudio 是一个给应用软件设计图形用户界面的专业工具,它可在画基于web形态的原型时,可以用Axure RP、Balsamiq Mockups很方便的画出来,但要是对象是客户端软件的时候,Axure却不是首选。 以快速的把思路,以可视化的方式来表现出来,并可以和客户进行交流想法。

2018-04-03

QT多语言开发文档

使用QT开发软件的多语言版本是很方便的,借助QT-Linguist工具和几个函数就可以实现了。 第一步:在.pro文件中添加TRANSLATIONS项,例如: TRANSLATIONS = xxx_ZH_cn.ts \ xxx_GB_en.ts 其中XXX_ZH_cn可以任意命名,ts固定不能改。

2015-03-26

InstallShieldUserGuide

InstallShield UserGuide,专业软件打包工具的说明书

2013-04-30

windows下的libevent静态库

Windows下面编译出来的libevent的Lib库,版本是libevent-2.0.19。libevent是通信网络库,用好了很有用的!

2012-10-16

net-snmp编译好的lib库

net-snmp5.7.1版本的lib库及dll文件,使用VS2010编译出来的,debug版本的。包含netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmptrapd.lib netsnmp.dll,以及相应的头文件,可以在windows平台下开发net-snmp的Agent扩展程序

2012-08-09

snmp trap命令接收软件

windows平台下,用于接收snmp协议的trap消息的小软件,可以测试你编写的trap命令是否发送成功了

2012-08-09

梅花雪日历控件,支持Firefox

修正页面不能使用网页标准化格式问题(即页面可以加下下面一行代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">) 如果中文变成了乱码,原因是js的编码格式和你的引用文件编码格式不一致造成的,解决方案有2个: 1、修改js文件,使它的保存编码与引用文件相同,比如都是gb2312,或都是utf-8; 2、修改引用代码,增加charset属性,例如: <script type="text/javascri

2011-05-17

梅花雪树控件2.0,好用的树控件

梅花雪树控件2.0的功能有了很大的改进,加入了动态加载,可以使用xml,js,一个数组等来作为数据源,在节点中还加入了checkbox。 使用方法可以从网上搜索,或者仔细读一下文件的源码。

2011-05-17

Linux C培训教程

阿里巴巴的一份培训教教程,属于高级类的,不是入门级的,请看好再下

2011-04-19

好用的树形控件实例CTreeCrlt

树形控件实例,VC6.0。包括了树控件的自绘,效果不错,值得一看。

2011-01-19

objective-C教程

objective-C教程,英文版的,喜欢的就下吧!

2010-12-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除