组合模式-java

package u10;

public class Client {
    public static void main(String a[]) {
        AbstractFile obj1, obj2, obj3, obj4, obj5;
        Folder plate1, plate2, plate3;
        obj1 = new ImageFile("111");
        obj2 = new TextFile("222");
        plate1 = new Folder("333");
        plate1.add(obj1);
        plate1.add(obj2);

        obj3 = new VideoFile("444");
        obj4 = new VideoFile("555");
        plate2 = new Folder("666");
        plate2.add(obj3);
        plate2.add(obj4);

        obj5 = new ImageFile("777");
        plate3 = new Folder("888");
        plate3.add(plate1);
        plate3.add(plate2);
        plate3.add(obj5);

        plate3.display();

    }
}
package u10;
import java.util.ArrayList;
public class Folder extends AbstractFile
{
    private String fileName;
    private ArrayList fileList=new ArrayList();
    public Folder(String filename)
    {
        this.fileName=new String();
        this.fileName=filename;
    }
    public void add(AbstractFile element)
    {
        fileList.add(element);
        System.out.println("Folder:add");
    }
    public void remove(AbstractFile element)
    {
        fileList.remove(element);
        System.out.println("Folder:remove");
    }
    public void display()
    {
        for(Object object:fileList)
        {
            ((AbstractFile)object).display();
        }
        System.out.println("Folder:display");
    }
}
package u10;

public class ImageFile extends AbstractFile
{
    private String fileName;
    public ImageFile(String filename)
    {
        this.fileName=new String();
        this.fileName=filename;
    }
package u10;


public class TextFile extends AbstractFile
{
    private String fileName;
package u10;

public class VideoFile extends AbstractFile
{
    private String fileName;
    public VideoFile(String filename)
    {
package u10;


public abstract class AbstractFile 
{
    public abstract void add(AbstractFile element);
    public abstract void remove(AbstractFile element);
    public abstract void display();
}

 

this.fileName=new String();
        this.fileName=filename;
    }
    public void add(AbstractFile element)
    {
        System.out.println("VideoFile:add");
    }
    public void remove(AbstractFile element)
    {
        System.out.println("VideoFile:remove");
    }
    public void display()
    {
        System.out.println(fileName);
        System.out.println("VideoFile:display");
    }
}

 

public TextFile(String filename)
    {
        this.fileName=new String();
        this.fileName=filename;
    }
    public void add(AbstractFile element)
    {
        System.out.println("TextFile:add");
    }
    public void remove(AbstractFile element)
    {
        System.out.println("TextFile:remove");
    }
    public void display()
    {
        System.out.println(fileName);
        System.out.println("TextFile:display");
    }
}

 

public void add(AbstractFile element)
    {
        System.out.println("ImageFile:add");
    }
    public void remove(AbstractFile element)
    {
        System.out.println("ImageFile:remove");
    }
    public void display()
    {
        System.out.println(fileName);
        System.out.println("ImageFile:display");
    }
    
}

 

posted @ 2021-10-14 12:36  yasai  阅读(32)  评论(0编辑  收藏  举报