组合模式
来源:互联网 发布:linux 搭建cdn 编辑:程序博客网 时间:2024/06/11 01:59
package com.samsung.demo;import java.util.*;import org.junit.Test;abstract class iFile {int add(iFile i) {return 0;}int remove(iFile i) {return 0;}protected String name;public String getName() {// TODO Auto-generated method stubreturn name;}public void setName(String name) {// TODO Auto-generated method stubthis.name = name;}public void display(iFile f) {}}class File extends iFile {@Overridepublic int add(iFile i) {// TODO Auto-generated method stubreturn 0;}@Overridepublic int remove(iFile i) {// TODO Auto-generated method stubreturn 0;}public void display(iFile f) {System.out.println(this.name);}}class Folder extends iFile {private ArrayList<iFile> list_file = new ArrayList();public ArrayList<iFile> getList_file() {return list_file;}@Overridepublic int add(iFile i) {// TODO Auto-generated method stublist_file.add(i);return 0;}@Overridepublic int remove(iFile i) {// TODO Auto-generated method stublist_file.remove(i);return 0;}public void display(iFile ifile) {Folder folderTmp = null;File fileTmp = null;ArrayList<iFile> listTmp = null;if (ifile instanceof File) {fileTmp = (File) ifile;fileTmp.display(fileTmp);} else {folderTmp = (Folder) ifile;listTmp = folderTmp.getList_file();for (int i = 0; i < listTmp.size(); i++) {iFile f = listTmp.get(i);display(f);}}}}public class TestMap {public static void main(String str[]) {iFile root = new Folder();root.setName("home");iFile file = new File();file.setName("test.cpp");root.add(file);iFile folder = new Folder();folder.setName("lili");iFile eflcpp_file = new File();eflcpp_file.setName("mysql.cpp");iFile json_file = new File();json_file.setName("json.cpp");folder.add(eflcpp_file);folder.add(json_file);root.add(folder);iFile bigfolder = new Folder();bigfolder.setName("files");iFile javafile = new File();javafile.setName("javafile.cpp");iFile sqlite_file = new File();sqlite_file.setName("sqlitefile.cpp");bigfolder.add(javafile);bigfolder.add(sqlite_file);folder.add(bigfolder);root.display(root);}}
test.cpp
efl.cpp
json.cpp
javafile.cpp
sqlitefile.cpp
0 0
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- 组合模式
- LeetCode 123 -- Best Time to Buy and Sell Stock III
- maven环境搭建
- PAT|1113. Integer Set Partition
- C# 命令行分析器
- Hibernate中Criteria的完整用法
- 组合模式
- ASIHTTPRequest类库简介和使用说明
- 虚拟机FAQ
- 简单工厂模式 单例工厂模式 工厂方法模式 抽象工厂模式 原型模式
- Spring---IOC 控制反转--1
- 背景图&生成的二维码合成图操作
- 深入学习Spring框架之六属性注入
- Log4j日志记录
- 如何成为游戏行业的图形程序员(Oliver Franzke )