2024.11.7

设计模式实验十

软件设计                  石家庄铁道大学信息学院

 

实验10:组合模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解组合模式的动机,掌握该模式的结构;

2、能够利用组合模式解决实际问题。

 
   

 

 

[实验任务一]:组合模式

用透明组合模式实现教材中的“文件夹浏览”这个例子。

实验要求:

1.文件的执行不需真正实现,只需简单提示即可;

 

 

2.提交源代码;

FileComponent.java

public interface FileComponent {

    void showDetails(); // 展示文件或文件夹的基本信息

} public interface FileComponent {

    void showDetails(); // 展示文件或文件夹的基本信息

}

File.java

public class File implements FileComponent {

    private String name;

 

    public File(String name) {

        this.name = name;

    }

 

    @Override

    public void showDetails() {

        System.out.println("File: " + name);

    }

}

Folder.java

import java.util.ArrayList;

import java.util.List;

 

public class Folder implements FileComponent {

    private String name;

    private List<FileComponent> components = new ArrayList<>();

 

    public Folder(String name) {

        this.name = name;

    }

 

    public void addComponent(FileComponent component) {

        components.add(component);

    }

 

    public void removeComponent(FileComponent component) {

        components.remove(component);

    }

 

    @Override

    public void showDetails() {

        System.out.println("Folder: " + name);

        for (FileComponent component : components) {

            component.showDetails();

        }

    }

}

Main.java

public class Main {

    public static void main(String[] args) {

        // 创建文件

        File file1 = new File("file1.txt");

        File file2 = new File("file2.txt");

        File file3 = new File("file3.txt");

 

        // 创建文件夹

        Folder folder1 = new Folder("Folder1");

        folder1.addComponent(file1);

 

        Folder folder2 = new Folder("Folder2");

        folder2.addComponent(file2);

        folder2.addComponent(file3);

 

        Folder rootFolder = new Folder("RootFolder");

        rootFolder.addComponent(folder1);

        rootFolder.addComponent(folder2);

 

        // 显示文件夹结构

        rootFolder.showDetails();

    }

}

3.注意编程规范。

 

 

posted @ 2024-12-25 10:02  cvjj  阅读(18)  评论(0)    收藏  举报