Spesso affronta questo problema quando arrivano nuovi requisiti, ma non l'ho mai visto discusso da nessuna parte. In questo caso, ho un elenco esistente di elementi (righi in una partitura musicale). Il requisito è che un utente possa aggiungere e rimuovere nuovi elementi, ma non è consentito rimuovere gli elementi originali. Quindi, come faccio a chiamare il nuovo stato memorizzato?
Una proprietà enum con valori Original e CreatedByUser riflette il contesto setter originale ed è potenzialmente utile in altre azioni come rinomina, copia, ecc. In genere aggiungerei anche una proprietà di sola lettura isDeletable che fa riferimento all'enumerazione.
Una proprietà bool di tipo boolea riflette il nuovo requisito e potenzialmente consente ad altri contesti di impostare il valore in base a ulteriori requisiti.
È uno migliore dell'altro? Esistono collegamenti che descrivono o discutono meglio questa dualità delle variabili di stato?