对CPI的理念的疑惑!

double9 发布于 2013/12/20 17:44
阅读 126
收藏 0

CPI是保护DB、Model的特殊方法和数据的。对于特殊要求,可以通过CPI类来访问。

按照理解来说,CPI是唯一的入口。

但是

public class Blog extends Model<Blog> {
	public static final Blog dao = new Blog();
	
	public Map<String,Object> getSelfAttrs(){
		return dao.getAttrs();
	}
}



却可以获得,啥情况?
加载中
0
JFinal
JFinal

     CPI 主要目的是在访问可见性有限制时仍然提供一个可选的方式来达到特殊目的。对于Model.getAttrs() 来说,是为了限制非继承类的访问。

    对于继承类,访问此方法本身还是一种封装行为,所以使用了 protected 可见性,而对于外部调用者需要限制对 attrs 属性的访问,避免对该 Model 内部状态带来破坏作用(例如向attrs 中放入属性而没有向modifyFlag置入修改标记),即避免破坏封装性。

double9
double9
能说说CPI的使用场景吗?
返回顶部
顶部