文章来源:http://blog.csdn.net/zhengzhb/article/details/7296921定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。举例来
系统 2019-08-12 09:29:54 2331
LRESULTOnPaint(UINTuMsg,WPARAMwParam,LPARAMlParam,BOOL&bHandled){//HDChdc=(HDC)wParamCPaintDCdc(m_hWnd);DoPaint(dc);bHandled=FALSE;return0;}voidDoPaint(CPaintDC&dc){CDCHandle_dc;HDChdcDestop=::GetDC(NULL);_dc.CreateCompatibleDC(hd
系统 2019-08-12 09:27:42 2331
做无线应用不像普通互联网应用那么简单,其中最麻烦的要数客户端适配的问题。全世界的手机千千万万种,屏幕尺寸、分辨率、颜色数、浏览器、操作系统、虚拟机版本等等全都不一样。要以统一的服务器端架构满足这么多种不同的客户端,并非易事。其中最困难的就是,你怎么知道客户端的配置是什么样的?当然,HTTP协议提供了UAheader,根据这个,可以拿到终端的具体型号,下面要做的就是,根据这个型号找到各种各样的规格属性了。WURFL正是做这个事情的,它的全称是Wireless
系统 2019-08-12 09:27:22 2331
绑定服务之间的通信方式多种多样,传输协议多种多样,消息编码格式多种多样,消息安全保障策略多种多样...等等这些如果组合起来,其数量非常之多,并且组合这些选项,有的彼此约束,有的互斥。对大多数应用程序而言,管理这么复杂的组合并无商业价值。然而,一旦做出错误的组合,就会影响系统的性能,质量,造成严重的后果。为了简化这些选项,方便管理,WCF引入了绑定(binding),将这些通信特征组合在一起。WCF定义了五种常用的绑定。基本绑定对应于BasicHttpBin
系统 2019-08-12 09:26:55 2331
1.通过页面或者window的name切换:switch_to_frame(name)switch_to_window(name)那么问题来了,出现2个或者以上窗口时候,新打开的window一般都是没有name,此时可用driver.switchTo().window(windowHandleId)来进行切换//获取当前窗口handleIdStringthisHandleId=driver.getWindowHandle();//切换到新windowfor
系统 2019-08-12 09:26:46 2331
1概述最近维护系统时,客户经常反馈这样一个内容:要在查询列表上加上一个查询条件。这样的要求一点也不过分,并且看起来工作量也不大,不就是加一个WHERE条件嘛,但是当调试到DAL层时,立刻石化——遇到在SELECT子句中编写子查询的SQL,SELECTSO.order_no,(SELECTSUM(SOD.good_num)FROM[StockOrderDetails]ASSODWHERESOD.order_id=SO.id)ASorder_numFROM[S
系统 2019-08-12 01:54:55 2331
引言ORPSoC的硬件平台是包含SDcardcontroller控制器的,但是对应的linux里面却没有对应的linux的驱动程序,这使ORPSoC的SDcard的使用收到了很大的限制。没有驱动,硬件是不能工作的,SD卡控制器的驱动,linux提供了非常好的framework,在写驱动时只要开发者=关心最底层的部分,就是和硬件直接打交道的部分,即linuxMMCframework的HOST部分。本小节并不介绍linux的MMC的framework,而把注意
系统 2019-08-12 01:33:25 2331
本实验是在虚拟机中!与实验同样的问题:http://blog.csdn.net/wanghui5767260/article/details/38850335问题描写叙述:节点1、节点2和节点3同一时候我做了断电处理,结果节点1和节点2都正常启动了,而节点3的vip在自己的节点上启动报错而在其它节点上启动正常。注:节点3仅仅装入了集群。查看状态:[root@rac3bin]#./crs_stat-tNameTypeTargetStateHost------
系统 2019-08-12 01:32:44 2331
#includeintgcd(inta,intb){if(!b)returna;elsereturngcd(b,a%b);}intmain(){ints,m;while(scanf("%d%d",&s,&m)!=EOF){printf("%10d%10d",s,m);if(gcd(s,m)==1)puts("GoodChoice");elseputs("BadChoice");printf("\n");}return0;}408-Unif
系统 2019-08-12 01:32:32 2331
Python之绘图和可视化1.启用matplotlib最常用的Pylab模式的IPython(IPython--pylab)2.matplotlib的图像都位于Figure对象中。可以使用plt.figure创建一个新的Figure,不能通过空Figure绘图,必须用add_subplot创建一个或多个subplotaxes[0,1]可以通过sharex和sharey指定subplot应该具有相同的X轴或Y轴。利用Figure的subplots_adjus
系统 2019-09-27 17:56:39 2330