子类必须能够替换其基类这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。在父类和子类的具体行为中,必须严格把握继承层次中的关系和特征,将基类替换为子类,程序的行为不会发生任何变化。同时,这一约束反过来则是不成立的,子类可以替换基类,但...
分类:
其他好文 时间:
2014-05-08 17:56:27
阅读次数:
306
依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。依赖一定会存在于类与类、模块与模块之间。当两个模块之间存在紧密的耦合关系时,最好的方法就是分离接口和实现:在依赖之间定义一个抽象的接口使得高层模块调用接口,而底层模块实现接口的定义,以此来有效控制...
分类:
其他好文 时间:
2014-05-08 17:55:28
阅读次数:
239
软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的开放封闭原则主要体现在两个方面:
1、对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
2、对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对其进行任何尝试的修改。 实现开开放封闭...
分类:
其他好文 时间:
2014-05-08 17:47:46
阅读次数:
233
这里记录一下eclipse开发工具中git的使用说明。
环境:centOS,eclipse-jee-kepler-SR2-linux-gtk-x86_64.tar.gz
eclipse的使用需要依赖Java环境,这边CentOS系统里面已经安装好了JDK:
不能使用open-jdk,此版本会出现不明异常。
1、eclipse安装egit插件:
eclipse里面,help -->...
分类:
系统相关 时间:
2014-05-08 17:24:55
阅读次数:
435
双向BFS:
分别在 起点 和 终点同时进行BFS。
一般地,BFS随着层数的增加,状态数会越来越多,也就是状态数与层数呈正相关。如下图,:
若从两端同时进行BFS ,则有
显然减少的哪一些区域即为减掉的那些不必要的状态。
#include
#include
#include
#include
#include
#include
#include
#include ...
分类:
其他好文 时间:
2014-05-08 17:16:12
阅读次数:
300
有两个对象A和B,A some B 是A依赖于B,当B some A的时候是B依赖于A这就叫依赖反转;
这种依赖关系如果让程序员自己控制(new 对象),就会出现高耦合,控制反转(依赖注入)就是让这种依赖关系由第三方管理(eg:spring)而不是程序员自己管理。...
分类:
其他好文 时间:
2014-05-08 16:05:17
阅读次数:
288
对于单一职责原则,其核心思想为:
一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而大大损伤其内聚性....
分类:
其他好文 时间:
2014-05-08 15:25:07
阅读次数:
232
使用多个小的专门的接口,而不要使用一个大的总接口。
具体而言,接口隔离原则体现在:接口应该是内聚的,应该避免“胖”接口。一个类对另外一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染。
接口有效地将细节和抽象隔离,体现了对抽象编程的一切好处,接口隔离强调接口的单一性。而.....
分类:
其他好文 时间:
2014-05-08 15:24:32
阅读次数:
288
基本概念 Struts是Apache 基金会Jakarta 项目组的一个Open Source
项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样,Struts
也是面向对象设计,将MVC模式"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。St...
分类:
编程语言 时间:
2014-05-08 10:17:09
阅读次数:
542
目标ftp服务器是一个非标准端口的ftp1.通过shell登录#ftp
//shell下输入ftp命令,进入到ftp提示符>open IP PORT //IP ,PORT对应为服务器的IP和端口号或者直接使用一条语句#ftp
IP PORT2.多文件下载(对目录无效)如:下载目录下的所有文件(子目录...
分类:
系统相关 时间:
2014-05-08 08:02:49
阅读次数:
474