Skip to content

Add builder pattern for complex object creation (e. g., service descriptions) #974

@sridmad

Description

@sridmad

Proposal

Introduce the builder pattern for constructing complex objects (such as CreateServiceDescription) in Service Fabric Explorer. This will encapsulate construction logic, enable better validation, and support scalable, testable usage as requirements grow.

Rationale

  • Current complex models are constructed by manually setting fields, leading to duplication and error-prone code
  • Builder pattern allows for validated, chained, and composable creation steps

Example Approach

export class CreateServiceDescriptionBuilder {
    private description: Partial<IRawCreateServiceDescription> = {};
    withName(name: string): this {
        this.description.ServiceName = name;
        return this;
    }
    // ...
    build(): IRawCreateServiceDescription {
        // Validate required fields
        return this. description as IRawCreateServiceDescription;
    }
}

Tasks

  • Identify complex object construction flows suitable for builders (e.g., service creation)
  • Implement builders with chained validation and property setting
  • Migrate existing creation logic to use builders
  • Add/adjust tests for builder usage

Benefits

  • Less error-prone object creation
  • Clear, validated construction API
  • Improved testability for object creation flows

Labels: refactoring, builder pattern, code quality

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions