Back to LLD explorer
Structural Design Patterns: Composite

File System

Medium

Problem Summary

Design an in-memory Directory and File management system that processes nesting structures and size computations.

Functional Scope

  • Directories can contain files or other nested directories.
  • Calculate directory sizes dynamically (sum of all nested contents).
  • Support standard actions like list, delete, and search.

Entity-Relationship (ER) Schema

Directory [1] <---> [*] FileSystemEntry
FileSystemEntry <|-- File
FileSystemEntry <|-- Directory

Design Approach

Implement the Composite design pattern. Ensure directories and files inherit from the same base class to process sizes and listing routines uniformly.

Core Classes & Models

FileSystemEntry (Base abstract component)File (Leaf component)Directory (Composite component containing children)
Code Blueprint
public abstract class FileSystemEntry {
    protected String name;
    public abstract int getSize();
}