Key words: Hook

UML

Template Pattern

Template

Pseudo Code

abstract class Record {
  public void save() {
    this.validate();
    this.beforeSave();
    // DB Query
  }
  abstract void validate();
  abstract void beforeSave();
}

class User extends Record {
  @Override
  public void validate() {
    // Implementation
  }

  @Override
  public void beforeSave() {
    // Implementation
  }
}

User u = new User();
u.save();

Reference