// Instead of deep inheritance hierarchies
class DatabaseLogger extends Logger extends BaseService {}

// Use composition
class UserService {
  constructor(logger, database) {
    this.logger = logger;
    this.database = database;
  }

  createUser(data) {
    this.logger.info("Creating user");
    return this.database.save(data);
  }
}