软件应该是可以扩展的,但是不可以修改的。对扩展都是开放的,模块式可以扩展来满足新的行为,我们可以改变模块的功能。OCP的好处是,尽可能的减少修改模块的次数和范围,从而提高代码的可维护性,复用性。比如操作系统的升级补丁,在修复bug的情况下,肯定是越小越小。如果说OCP做的不好,每次修改需要修改大量的文件,那就会导致补丁很大。对于修改是封闭的,在扩展模块的时候,不必改动源代码的二进制文件,不管是.o文件还是.dll文件都不用改动。问题的核心是怎么样改变了模块
系统 2019-08-12 01:32:46 2932
基本类型实例//1.定义一个一维数组,先声明,在分配空间int[]number;//生命,没有初始化,number=nullnumber=newint[5];//初始化为默认值,int默认值为0//第二步创建内存空间,在堆空间创建长度为5数组,number里面存储的是第一个内存地址引用类型实例Person[]my=newPerson[3];///*1.my实在栈区,而Person数组在堆区2.堆空间有三个连续内存空间里面分别存有三个引用,并且默认初始化为n
系统 2019-08-12 01:32:19 2932
转载:http://kalogen.iteye.com/blog/784908http://blog.163.com/xysygy_2005/blog/static/4209511020101020105520537/这两个链接内容相同,第一个链接应该是原创,第二个可能是转载,我是通过第二个链接看到这篇文章的,因此写了两个转载链接地址。注1:实现此集群的方法参考了网上的很多文章,但由于很多文章都表明是原创的,故无法知道整个操作流程的真正作者是谁。下面就是我
系统 2019-08-12 01:32:14 2932
【语音识别】语音端点检测及Python实现一、语音信号的分帧处理二、端点检测方法2.1、短时能量2.2、短时过零率三、Python实现从接收的语音信号中准确检测出人声开始和结束的端点是进行语音识别的前提。本博文介绍基于短时过零率和短时能量的基本语音端点检测方法及Python实现。如图所示为语音信号,红色方框内为人声:一、语音信号的分帧处理语音信号是时序信号,其具有长时随机性和短时平稳性。长时随机性指语音信号随时间变化是一个随机过程,短时平稳性指在短时间内其
系统 2019-09-27 17:55:51 2931
特别是linux系统,装了多个python,有时候找不到python的绝对路径,有时候装了个django,又找不到django安装到哪里了。。当然查看的方法有很多种,这里列出几种,供没有经验的人参考下。复制代码代码如下:G:\code\moniter>python-c"fromdistutils.sysconfigimportget_python_lib;print(get_python_lib())"C:\Python27\Lib\site-packag
系统 2019-09-27 17:48:37 2931
1.最长公共子序列(LCS)1.1问题描述1.2思路利用动态规划。下一步就要找到状态之间的转换方程。因此可以根据这个方程来进行填表,以"helloworld"和“loop”为例:1.3Python代码defLCS(string1,string2):len1=len(string1)len2=len(string2)res=[[0foriinrange(len1+1)]forjinrange(len2+1)]foriinrange(1,len2+1):for
系统 2019-09-27 17:47:09 2931
微软在Windows系统中会隐藏某些功能,比如说今天要介绍的,你可以在一个面板中查看任务控制面板和系统设置的所有内容,就如同“上帝模式”一般。不过Windows7却将该功能藏匿了起来,下面来看一下该功能究竟有何玄妙。首先,在桌面或是其它地方创建一个新的文件夹;然后将此文件夹重命名为“XX.{ED7BA470-8E54-465E-825C-99712043E01C}”,例如“驱动之家.{ED7BA470-8E54-465E-825C-99712043E01C
系统 2019-08-29 23:28:23 2931
GPSAlarm1.前言开发一个有GPS功能的闹钟。有了这个软件,就能保证赶火车不会迟到,赶公交不用起的太早。2.需求2.1软件初期化自动定位到当前所在位置的地图对于左边的初期画面,提供以下三个按钮的事件:・定位按下【定位按钮】,在画面的正中出现用手指滑动该符号,用以定位现在的出发地址・搜寻按下【搜寻】按钮,输入目标地址,并在画面上以表示目的地。并且,将目的地和出发地址之间的各种可能的出行方式按照所花费时间升序,表格化表现出来・取消按下【关闭】按钮,关闭该
系统 2019-08-29 23:01:44 2931
SQLPlus调试Oracle有返回值存储过程、参数绑定(variable:i)、先建好表,然后写带输出参数的存储过程CREATEORREPLACEPROCEDURE"MES"."MES_GETKEY"(KNameINVARCHAR2,KValueOUTVARCHAR2)ASBEGINselectKeyValueintoKValuefromMES_SYSTEMKEYwhereKeyname=KName;endMES_GetKey;然后SQLPlus中运行:
系统 2019-08-29 22:25:51 2931
Java虚拟机在执行java程序过程中会把它所管理的内存划分为若干个不同的数据区域1.程序计数器a)是一块较小的内存,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令、分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成b)由于java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器
系统 2019-08-12 09:29:29 2931