一.问题的提出我常常在思考一个问题,我们如何能设计出高水平、高质量的软件出来。怎样是高水平、高质量的软件?它应当是易于维护、易于适应变更、可重用性好的一个系统。如何做到这一点呢?答案当然是“低耦合、高内聚”了。低耦合就是软件在构造的时候,各个模块、各个功能、各个类都不会过度依赖于它周围的环境。只有这样,才能使我们的模块(功能、类)在周围发生变更时不受影响,做到易于维护和易于适应变更。正因为如此,也使它更易于重用到其它功能类似的环境中,提高了重用性。高内聚则
系统 2019-08-29 21:59:02 2184
3)职责驱动设计和领域驱动设计前面我提到,当我们尝试写一些复杂功能的时候,我们把功能分解成一个个相对独立的函数。但是,应当将这些函数分配到哪个类中呢?也就是系统中的所有类都应当拥有哪些函数呢?或者说应当表现出哪些行为呢?答案就在这里:以职责为中心,根据职责分配行为。我们在分析系统时,首先是根据客户需求进行用例分析,然后根据用例绘制领域模式和分析模型,整个系统最主要的类就形成了。通过以上分析形成的类,往往和现实世界的对象是对应的。正因为如此,软件世界的这些类
系统 2019-08-29 21:58:56 2184
本文是本人毕业时发表的论文.原文地址:http://www.ahcit.com/lanmuyd.asp?id=1972摘要文章提出一种集混沌加密技术,小波变换,扩频技术为一体的彩色图像水印算法。该算法先将水印信息通过混沌序列加密,再进行扩频调制弱化水印信息,然后在彩色载体图像绿色分量上进行小波变换,利用人类视觉模型(HVS)特性,在低频系数上嵌入处理后的水印信息。实验结果和攻击测试表明,该算法具有很好的鲁棒性以及安全性。关键词扩频;鲁棒性;盲水印;混沌序列
系统 2019-08-29 21:57:46 2184
一.虚析构函数我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数。因为在delete一个抽象类指针时候,必须要通过虚函数找到真正的析构函数。如:classBase{public:Base(){}virtual~Base(){}};classDerived:publicBase{public:Derived(){};~Derived(){};}voidfoo(){Base*pb;pb=newDerived;dele
系统 2019-08-12 09:30:25 2184
建立一张表后,有时为了测试,需要向表中批量插入一些数据。如果纯手工插入,相信没有人会干。一下SQL语句可以完成批量数据插入的功能。建表脚本如下:CREATETABLEHELLO(IDVARCHAR2(64),NAMEVARCHAR2(64),AGEVARCHAR2(64));数据插入SQL如下:declarev_countnumber;beginv_count:=1;whilev_count<=10000loopinsertintohellovalues(
系统 2019-08-12 09:30:17 2184
importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Component;importjava.awt.Dimension;importjava.awt.FlowLayout;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Menu;importjava.awt.MenuBar;importjava.awt.da
系统 2019-08-12 09:29:35 2184
Python中有join()和os.path.join()两个函数,具体作用如下:join():连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串os.path.join():将多个路径组合后返回一、函数说明1、join()函数语法:'sep'.join(seq)参数说明sep:分隔符。可以为空seq:要连接的元素序列、字符串、元组、字典上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串返回值:返
系统 2019-09-27 17:57:06 2183
编码0,12进制,8,16进制;ACSII是127个不到1个byte=8bit由于时间发现欧洲使用第8个bit,有256个字符,到了中国不足够。所以中国人gb2312,gbk开发。。为了python程序方便。。。不能说python,世界和平,规定了unicode(在内存运营)unicode不人性化,什么都要占2个byte16个bit,然后utf-8出现了机会。。。。中文3个byte,英文1个byte..#####################"aaa".
系统 2019-09-27 17:56:48 2183
WMI是Windows系统的一大利器,Python的win32api库提供了对WMI的支持,安装win32api即可使用WMI。本例通过WMI的WQL实现ping命令。importwmic=wmi.WMI()wql="SELECTStatusCodeFROMWin32_PingStatusWHEREAddress='127.0.0.1'"foriinc.query(wql):ifi.StatusCode:print'offline'else:print'o
系统 2019-09-27 17:56:28 2183
为idle增加一个清屏的扩展ClearWindow就可以了(在http://bugs.python.org/issue6143中可以看到这个扩展的说明)。下面我说安装使用的方法。首先下载clearwindow.py(点击可直接下载,不能下载的可以右键保存,格式为py结尾),将这个文件放在PythonX\Lib\idlelib目录下(X为你的python版本),然后在这个目录下找到config-extensions.def这个文件(idle扩展的配置文件),
系统 2019-09-27 17:55:08 2183