欢迎您访问我爱IT技术网,今天小编为你分享的电脑教程是建站经验系列之:【Java与模式:合成模式】,下面是详细的分享!
Java与模式:合成模式
import java.util.Iterator;import java.util.Vector;
public class Client {
public static String indentChar="\t"; //文件层次缩进字符
public static void main(String args[]) {
new Client().test();
}
public void test() {
//根下文件及文件夹
Folder root=new Folder("树根");
Folder b1_1=new Folder("1_枝1");
Folder b1_2=new Folder("1_枝2");
Folder b1_3=new Folder("1_枝3");
File l1_1=new File("1_叶1");
File l1_2=new File("1_叶2");
File l1_3=new File("1_叶3");
//b1_2下的文件及文件夹
Folder b2_1=new Folder("2_枝1");
Folder b2_2=new Folder("2_枝2");
File l2_1=new File("2_叶1");
//缔造树的层次关系(简单测试,没有重复添加的控制)
root.add(b1_1);
root.add(b1_2);
root.add(l1_1);
root.add(l1_2);
b1_2.add(b2_1);
b1_2.add(b2_2);
b1_2.add(l2_1);
root.add(l1_3);
root.add(b1_3);
//控制台打印树的层次
outTree(root);
}
public void outTree(Folder folder) {
System.out.println(folder.getName());
iterateTree(folder);
}
public void iterateTree(Folder folder) {
Vector<IFile> clist=folder.getAllComponent();
//todo:遍历之前可以对clist进行排序,这些都不是重点
for (Iterator<IFile> it=clist.iterator(); it.hasNext();) {
IFile em=it.next();
if (em instanceof Folder) {
Folder cm=(Folder) em;
System.out.println(getIndents(em.getDeep()) cm.getName());
iterateTree(cm);
} else {
System.out.println(getIndents(em.getDeep()) ((File) em).getName());
}
}
}
public static String getIndents(int x) {
StringBuilder sb=new StringBuilder();
for (int i=0; i < x; i ) {
sb.append(indentChar);
}
return sb.toString();
}
}
以上所分享的是关于Java与模式:合成模式,下面是编辑为你推荐的有价值的用户互动:
相关问题:minecraft pe生存模式合成表
答:基本合成: 木板——材料:原木Wood 用作建筑材料,可以制作成许多东西物品,任何形式的树块,都会拿到原木。 棍子Sticks——材料:木板 可以合成火把,箭头,标志,梯子,围栏,处理工具和武器。 火把Torches——材料:棍子、煤 提供照明,避免刷怪,... >>详细
相关问题:java 编程模式---桥接模式
答:桥接模式 整理自 《java与模式》阎宏编著 1.意图: 将抽象化与实现化脱耦,使得两者可以独立地变化。 2.类图: 3.原理: 强关联:编译时期已经确定,无法在运行时期动态更改的关联。 弱关联:可以动态确定并在运行时期动态更改的关联。 继承... >>详细
相关问题:JAVA与模式怎么样
答:个人感觉没有特别之处啊,但是模式总有一个入门的书吧,你选择自己能看懂的就行了,绕了半天我在网上对照设计模式的书目录 一各个找的啊,那个说的我能看懂我就拿到本地然后总结下,也成了本书了!所以别过多评价出书的了,就是热 能赚点外块,... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
