(二十一)访问者模式
对已存在的类进行扩展,通常需要增加方法,但是如果需要的行为与现有的对象模型不一致,或者无法修改现有代码。在这种情况下,不更改类的层次结构,就无法扩展该层次结构的行为。如果运用了访问者模式,就可以支持开发人员扩展该类层次结构的行为。
(二十二)中介者模式
面对对象开发要求尽可能恰当的分配职责,要求对象能够独立的完成自己的任务。观察者模式通过最小化对象与对象之间的职责交互,从而支持职责的合理分配。当对象间的交互趋向复杂,而每个对象都需要知道其他对象的情况时,提供一个集中地控制权是很有用...
分类:
编程语言 时间:
2014-07-16 11:27:22
阅读次数:
263
判断结构
选择结构
循环结构
2.6.1 判断结构
if语句
三种格式:
1. if(条件表达式)
{
执行语句;
}
2. if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
3. if(条件表达式)
{
执行语句;
}
else if (条件表达式)
{
执行语句;
}
……
else
{
执行语句;
...
分类:
编程语言 时间:
2014-07-16 17:25:59
阅读次数:
232
参考内核kernel/irq/manage.c的代码:
t = kthread_create(irq_thread, new, "irq/%d-%s", irq,
new->name);
会生成名为irq/-的线程, 所以可以用如下方法查找:
$ ps aux |grep irq...
分类:
编程语言 时间:
2014-07-16 10:48:20
阅读次数:
220
题目分析见这里
class Solution:
# @param head, a ListNode
# @return a list node
def detectCycle(self, head):
if None == head or None == head.next:
return None
pfast = ...
分类:
编程语言 时间:
2014-07-16 17:18:53
阅读次数:
248
class Solution:
# @param head, a ListNode
# @return a boolean
def hasCycle(self, head):
if None == head or None == head.next:
return False
pfast = head
...
分类:
编程语言 时间:
2014-07-16 09:50:21
阅读次数:
271
在java类中一般有:成员变量、静态变量、成员方法、静态方法、构造方法。那么这几个的初始化顺序是什么呢?
初始化的先后顺序是:静态变量(类load进内存就初始化)------静态代码块(类load进内存就初始化)--------成员变量(对象初始化时)------------初始化块------------构造函数
测试程序如下:
package com.evan;
/*
* 初始化顺序...
分类:
编程语言 时间:
2014-07-16 17:10:20
阅读次数:
200
本文详细介绍了结构体中位域相关使用说明。有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来。...
分类:
编程语言 时间:
2014-07-16 17:27:16
阅读次数:
757
注册表的组织方式跟文件目录比较相似,主要分为根键、子键和键值项三部分,与文件目录对应的话就是根目录、子目录和文件,本文系统的讲解了通过windows API 完成对注册表项创建、修改、删除等方面的内容。...
分类:
编程语言 时间:
2014-07-16 09:37:07
阅读次数:
359
比如我想将 “javascript”反转为 “tpircsavaj”。我们一般处理都是用for循环然后用StringBuffer一个字符一个字符添加。
其实StringBuffer提供了一个reverse方法就可以实现。测试代码如下:
package com.evan;
public class ReverseTest {
public static void main(String[]...
分类:
编程语言 时间:
2014-07-16 17:19:54
阅读次数:
202
函数的定义
函数的特点
函数的应用
函数的重载
2.7.1 函数的定义
什么是函数?
? 函数就是定义在类中的具有特定功能的一段独立小程序。
? 函数也称为方法。
函数的格式:
? 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数...
分类:
编程语言 时间:
2014-07-16 17:19:44
阅读次数:
224
先使用int实验:
public class TTEST {
private static List mList = new LinkedList();
public static void main(String[] args) {
int a = 0;
changeA(a);
System.out.println("a = "+a);
}
public stat...
分类:
编程语言 时间:
2014-07-16 17:19:33
阅读次数:
247
数组的定义
数组的内存分配及特点
数组操作常见问题
数组常见操作
数组中的数组
2.8.1 数组的定义
概念
同一种类型数据的集合。其实数组就是一个容器。
数组的好处
可以自动给数组中的元素从0开始编号,方便操作这些元素。
格式1:
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
示例:int[] arr = new int[5];
格式2:
元素...
分类:
编程语言 时间:
2014-07-16 17:28:21
阅读次数:
189
执行#Python与#python -V,看到版本号是2.4.3,很老了,而且之前写的都是跑在python3.X上面的,3.X和2.X有很多不同,
有兴趣的朋友可以参考下这篇文章:
http://www.jb51.net/article/34011.htm
更新python千万不要把老版本的删除!新老版本是可以共存的,很多基本的命令、
软件包都要依赖预装的老版本python的,比如y...
分类:
编程语言 时间:
2014-07-16 11:01:41
阅读次数:
452
Java中的回调函数一般来说分为以下几步:
声明回调函数的统一接口interface A,包含方法callback();在调用类caller内将该接口设置为私有成员private A XXX;在caller内提供实现A接口的public方法(将外部该接口的实现类通过形参传入caller的XXX);caller的某个方法dosth()中会用到XXX.callback()方法;在caller的实...
分类:
编程语言 时间:
2014-07-16 09:06:18
阅读次数:
321
1.JavaScript把控件id作为参数调用
function xx(pmba)
{
document.getElementById(pmba).style.display = "block";
}
网页a
窗口b
2.这个弄了好一会儿,只...
分类:
编程语言 时间:
2014-07-16 17:28:53
阅读次数:
228
//读文件
public static String ReadFile(String path) {
File file = new File(path);
BufferedReader reader = null;
String laststr = "";
try {
reader = new BufferedReader(new FileReader(file));
String tempSt...
分类:
编程语言 时间:
2014-07-16 17:15:53
阅读次数:
318