考虑以下代码
public interface IEntity {
int Id { get; set; }
}
public class User : IEntity {
public int Id { get; set; }
}
public abstract class RepositoryBase<TEntity> where TEntity : IEntity {
public bool Save(TEntity entity) {
if (!IsValid(entity)) return false;
// Write to data store
return true;
}
public abstract TEntity CreateNew();
protected abstract bool IsValid(TEntity entity);
}
public class UserRepository : RepositoryBase<User> {
public override User CreateNew() {
return new User {
Id = 3
};
}
protected override IsValid(User entity) {
return entity.Id > 0;
}
}
这是开放/封闭原则吗?即,将大部分责任交给基类,并允许继承类的某些功能责任。
感觉不像,所以如果不是开闭原则,那这是一种什么样的设计模式?
干杯