One of them is for creating an object and the other one is for update it.
Non dovresti avere 2 visualizzazioni per niente. Le viste hanno lo scopo di raccogliere i dati immessi dalla GUI, non di introdurre la logica, se un set di dati sottostante deve essere creato o semplicemente aggiornato.
Preferirei che dovresti avere un unico pannello di visualizzazione per quei dati e riuscire a creare un nuovo o aggiornare un set di dati sottostante, in un livello separato, che comunica con il database.
Il "principio di responsabilità singola" significa piuttosto che la vista dovrebbe essere responsabile della raccolta dei dati necessari e della convalida dell'input (primitiva) di tali dati.
Un set di dati sottostante deve contenere le informazioni, se è necessario creare un nuovo record o modificare (aggiornare) uno esistente, se l'utente impegna i dati dal pannello di visualizzazione.
Quindi la tua domanda su "come denominare una classe base astratta" per questi diventa completamente irrilevante, perché non ce n'è uno.