这是开放/封闭原则吗?如果不是
|
考虑以下代码
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;
}
}
这是开放/封闭的原则吗?即,将大部分责任交给基类,并允许某些功能职责继承类。
感觉并非如此,因此,如果不是开放式/封闭式原理,那么这是一种什么样的设计模式?
干杯
没有找到相关结果
已邀请:
2 个回复
茶鬼失形
来创建用于不同数据结构的新存储库,而无需修改
中的代码。这就是开放/封闭原则的核心含义。 也就是说,打开/关闭原则是一般设计原则,而不是设计模式。在
和
方法的关系中可见的主要设计模式是模板方法。
惭法搽