连开发带测试写了4天。。终于把 andyLib 版本升到了 v0.2,中间苦于对JS理解的偏差险些‘遇难’。。。 。
今天做完测试后(树的遍历)。。就想先把SDK中的API写到这里,以为以后做文档准备,暂时不提供SRC。。因为想等下一个 edition 在发布。。。。。
andyLib v0.2目前主要包括一个Collection框架(其他一些’无组织‘的这里先不说,比如对字符串操作的StringBuffer类)
Collection框架包括2个抽象类,4个实现类,这里简单说下结构。。。UML图就不发了。。
Collection
----------------|---------------
| | |
HashTable | Tree
LinearType
|
--------------|---------------
| | |
List Stack Queue
Collection为抽象类,提供集合通用方法
int size()
void removeAll()
-------HashTable
void put(key,value)
object get(key)
List getListOfIndex()
object remove(key)
------Tree
TreeNode createTreeNode(name,value)
TreeNode getTreeNodeById(treeNode.id)
void setRoot(treeNode)
------TreeNode是Tree的一个内部类
TreeNode firstChild()
TreeNode lastChild()
TreeNode appendChild(treeNode)
属性:
id 只读
depth 只读
parent 只读
childNodes 只读
nodeName 读写
nodeValue 读写
注:代码本身没有实现只读限制,但是如果改变只读属性,会产生错误
-------LinearType是一个抽象类扩展了Collection, 加入了对线性结构的特殊操作
void reverse() 反置集合元素
List/Stack/Queue convert(type) 讲当前集合转换成除自己之外的其他线性结构
-------List
List(array) 重载构造(线性结构都有,后面不再说明)
void add(object[,index]) 重载函数,如果index合法,会插入index之后,否则添加到最后
void addAll(array | list) 重载函数,可以添加一个array或者list
void addFirst(object) 插入list首位
object get(index[,mode]) 重载函数,如果mode为true,get函数返回指定索引元素, 并从list中删 除该元素,如果mode为false, 就只返回不删除(后面的mode相同)
object getFirst(mode)
object getLast(mode)
List subList(startIndex,endIndex,mode)
boolean contained(object,mode) 如果mode为true,进行严格比较
int getIndexOf(object,mode) mode含义同上
Array getArray()
--------Stack
void push(object)
object pop()
--------Queue
void queueUp(object)
object toLeave()
树的测试代码。。
var
tree
=
new
Tree();
tree.setRoot(tree.createTreeNode(
"
root
"
,
23432
));
var
son
=
tree.createTreeNode(
"
Child
"
,
12
);
var
sson
=
tree.createTreeNode(
"
Child3
"
,
15
);
var
ssson
=
tree.createTreeNode(
"
Child3
"
,
23
);
var
sssson
=
tree.createTreeNode(
"
Child3
"
,
34
);
var
ssssson
=
tree.createTreeNode(
"
Child3
"
,
45
);
son.appendChild(sson);
sson.appendChild(ssson);
ssson.appendChild(sssson);
sssson.appendChild(ssssson);
tree.root.appendChild(son);
tree.root.appendChild(tree.createTreeNode(
"
Child1
"
,
13
));
tree.root.appendChild(tree.createTreeNode(
"
Child2
"
,
14
));
var
root
=
tree.root;
function
dis(r)
{
var b = " ";
for(var i=0;i<r.depth;i++)b += b;
document.write(b+"id="+r.id+":name="+r.nodeName+":value="+r.nodeValue+":depth="+r.depth+"<br>");
if(r.childNodes != null && r.childNodes.size()>0)
{
for(var i=0;i<r.childNodes.size();i++){
dis(r.childNodes.get(i));
}
}
}
dis(root);
显示结果如下:
id=0:name=root:value=23432:depth=0
id=1:name=Child:value=12:depth=1
id=2:name=Child3:value=15:depth=2
id=3:name=Child3:value=23:depth=3
id=4:name=Child3:value=34:depth=4
id=5:name=Child3:value=45:depth=5
id=6:name=Child1:value=13:depth=1
id=7:name=Child2:value=14:depth=1
眼睛很疼。。。。不写了。。。。。。有什么问题留言。在下一个VERSION会改。。。谢谢了。。。
滴眼药去了。。。。。
今天做完测试后(树的遍历)。。就想先把SDK中的API写到这里,以为以后做文档准备,暂时不提供SRC。。因为想等下一个 edition 在发布。。。。。
andyLib v0.2目前主要包括一个Collection框架(其他一些’无组织‘的这里先不说,比如对字符串操作的StringBuffer类)
Collection框架包括2个抽象类,4个实现类,这里简单说下结构。。。UML图就不发了。。
Collection
----------------|---------------
| | |
HashTable | Tree
LinearType
|
--------------|---------------
| | |
List Stack Queue
Collection为抽象类,提供集合通用方法
int size()
void removeAll()
-------HashTable
void put(key,value)
object get(key)
List getListOfIndex()
object remove(key)
------Tree
TreeNode createTreeNode(name,value)
TreeNode getTreeNodeById(treeNode.id)
void setRoot(treeNode)
------TreeNode是Tree的一个内部类
TreeNode firstChild()
TreeNode lastChild()
TreeNode appendChild(treeNode)
属性:
id 只读
depth 只读
parent 只读
childNodes 只读
nodeName 读写
nodeValue 读写
注:代码本身没有实现只读限制,但是如果改变只读属性,会产生错误
-------LinearType是一个抽象类扩展了Collection, 加入了对线性结构的特殊操作
void reverse() 反置集合元素
List/Stack/Queue convert(type) 讲当前集合转换成除自己之外的其他线性结构
-------List
List(array) 重载构造(线性结构都有,后面不再说明)
void add(object[,index]) 重载函数,如果index合法,会插入index之后,否则添加到最后
void addAll(array | list) 重载函数,可以添加一个array或者list
void addFirst(object) 插入list首位
object get(index[,mode]) 重载函数,如果mode为true,get函数返回指定索引元素, 并从list中删 除该元素,如果mode为false, 就只返回不删除(后面的mode相同)
object getFirst(mode)
object getLast(mode)
List subList(startIndex,endIndex,mode)
boolean contained(object,mode) 如果mode为true,进行严格比较
int getIndexOf(object,mode) mode含义同上
Array getArray()
--------Stack
void push(object)
object pop()
--------Queue
void queueUp(object)
object toLeave()
树的测试代码。。





























显示结果如下:
id=0:name=root:value=23432:depth=0
id=1:name=Child:value=12:depth=1
id=2:name=Child3:value=15:depth=2
id=3:name=Child3:value=23:depth=3
id=4:name=Child3:value=34:depth=4
id=5:name=Child3:value=45:depth=5
id=6:name=Child1:value=13:depth=1
id=7:name=Child2:value=14:depth=1
眼睛很疼。。。。不写了。。。。。。有什么问题留言。在下一个VERSION会改。。。谢谢了。。。
滴眼药去了。。。。。