Factory Method a Semmiért

Factory Method for Nothing

Quando l’architettura continua a funzionare, ma il senso evapora

C’è una frase — attribuita a Mario Fusco — che suona quasi banale:

“Un software che non ha output ha solo uno scopo: scaldare il processore.”

È una frase giusta.
Ma incompleta.

Perché esiste una classe di sistemi molto più sofisticata:
sistemi che producono output perfettamente valido… e completamente inutile.

Non falliscono.
Non crashano.
Non segnalano errori.

Semplicemente, non fanno nulla di rilevante.

E lo fanno benissimo.


Il punto non è il fallimento

È la simulazione della produzione

Nell’ingegneria del software object-oriented esiste un pattern classico: il Factory Method.

Serve a delegare la creazione degli oggetti.
È elegante, estendibile, formalmente impeccabile.

Ora immagina di usarlo per costruire questo:

una factory che segue tutte le regole…
e alla fine non produce niente

Oppure, peggio:

produce qualcosa che formalmente è corretto,
ma ontologicamente è vuoto

Qui il discorso cambia.

Non siamo più nel bug.
Siamo nella messa in scena della produzione.

Fig. 1 — Nikolai Harmanov osserva l’esecuzione di Factory Method for Nothing in ambiente cross-language.

Caso 1 — La versione ingenua

Il ritorno esplicito del nulla

La forma più semplice è brutale: la factory ritorna null.

interface Product {
    void execute();
}

class ConcreteProduct implements Product {
    public void execute() {
        System.out.println("Doing something...");
    }
}

class ProductFactory {
    public static Product create(String type) {
        if ("real".equalsIgnoreCase(type)) {
            return new ConcreteProduct();
        }

        // Factory Method for Nothing
        return null;
    }
}

Qui il gioco è scoperto.

  • il sistema dichiara il vuoto
  • il contratto è spezzato
  • l’assenza è evidente

È quasi onesto.

Troppo.


Caso 2 — La versione elegante

Quando il nulla diventa un oggetto

Molto più interessante è l’uso del Null Object Pattern.

La factory non ritorna null.
Ritorna un oggetto valido… che non fa nulla.

public interface IArtifact
{
    void Render();
    bool IsNull { get; }
}

public sealed class RealArtifact : IArtifact
{
    public void Render()
    {
        Console.WriteLine("Rendering something meaningful");
    }

    public bool IsNull => false;
}

public sealed class NullArtifact : IArtifact
{
    public void Render()
    {
        Console.WriteLine("[NullArtifact] Nothing to render.");
    }

    public bool IsNull => true;
}

public static class ArtifactFactory
{
    public static IArtifact Create(string key)
    {
        if (key == "real")
            return new RealArtifact();

        return new NullArtifact();
    }
}

Qui il sistema:

  • rispetta il contratto
  • produce un oggetto valido
  • non genera errori

Eppure:

non succede nulla

Questa è la forma più pericolosa.

Perché il vuoto non è più un errore.
È un esito corretto.


Caso 3 — Il sistema che assorbe tutto

Il vuoto come comportamento standard

In una versione più evoluta, la factory diventa un sistema adattivo:

class NullProduct:
    def execute(self):
        return "No operation performed. The system preserves its emptiness."

class ConcreteProduct:
    def execute(self):
        return "Produced something."

class FactoryMethodForNothing:

    def create(self, key):
        if key == "real":
            return ConcreteProduct()

        return NullProduct()

Qualunque input non previsto:

  • non genera errore
  • non rompe il sistema
  • non viene segnalato

Nota: il codice Python può essere eseguito. Invitiamo i lettori a farlo ed osservarne il comportamento.

Viene normalizzato nel nulla.


E qui il discorso esce dal codice

A questo punto il pattern smette di essere un pattern.

Diventa una lente.

Perché descrive perfettamente una classe di sistemi molto diffusa:

  • strutture che funzionano
  • processi che scorrono
  • metriche che migliorano
  • output formalmente corretti

ma che, nel concreto:

non producono alcun effetto reale


Sistema operativo per la soddisfazione del nulla

In una società vagamente distopica — a metà tra Douglas Adams, Stefano Benni e Philip K. Dick — esiste un sistema chiamato:

Ka.OS

Un sistema operativo globale il cui unico compito è:

istanziare continuamente varianti di
Factory Method for Nothing

Il sistema è perfetto:

  • scalabile
  • distribuito
  • resiliente
  • certificato
  • agile-compliant

E completamente inutile.


Il segreto

All’interno del sistema esiste una variabile:

core_temperature
  • invisibile
  • non documentata
  • non accessibile

Quando raggiunge una soglia:

SATISFACTION_THRESHOLD

il sistema entra in stato:

Satisfied


Il punto

Il sistema:

  • non produce valore
  • non modifica il mondo
  • non genera esiti

ma

si considera soddisfatto


Nota tecnica (non ufficiale)

“The system is operational.
The output is valid.
The result is void.
The system is satisfied.”




(presunto nome civile: Kaveh Antonovič Osipov, 2077? – )


Teorico russo-iraniano, già ricercatore in informatica quantistica e successivamente espulso — o auto-espulso — dai circuiti accademici maggiori dopo aver definito il dashboarding manageriale “una forma debole di liturgia termica”. È ricordato per i suoi studi sull’epistemologia del capitalismo cibernetico – applicati all’orgone accumulatore – e per l’ipotesi secondo cui alcuni sistemi complessi non massimizzerebbero output né valore, ma soltanto il proprio indice interno di soddisfazione operativa.

Il problema non è Scrum

Non è Agile

Non è il framework

Il problema è più profondo.

È quando:

  • la struttura sostituisce il risultato
  • la coerenza sostituisce la verità
  • il processo sostituisce il senso

E il sistema continua a funzionare.

“Il capitalismo cibernetico non produce soltanto merci: produce i protocolli con cui la realtà viene dichiarata irrilevante.”

Dr Ka.OS


Nei pochi archivi in cui compare, Doctor Ka.OS (anche noto come KoS) risulta nato nel 2077.

Non è un errore.

Oppure lo è, ma in un senso non banale.

Come osserva Douglas Hofstadter in “Gödel, Escher, Bach“, alcuni sistemi complessi non si limitano a descrivere il mondo, ma generano strutture auto-riflessive in cui causa ed effetto collassano.

Se Ka.OS / KoS esiste, potrebbe essere esattamente questo:

non un autore che scrive dei sistemi,
ma un autore generato dai sistemi che descrive.

In questo senso, la sua data di nascita non è nel passato.

È nel punto in cui il sistema
raggiunge un livello sufficiente di auto-referenzialità
da produrre il proprio osservatore.


Conclusione

Il Factory Method for Nothing non è un anti-pattern.

È qualcosa di peggio.

È un pattern che:

  • funziona
  • scala
  • si integra
  • si certifica

e nel frattempo:

produce il vuoto in modo impeccabile


Chiusura

Nothing happened.
The architecture remains satisfied.


Red Nomad (c) 04.2026

Lascia un commento