see something about DIP(Dependence invert principle),not only access but implemention mean dependence.client of class and implentor of class all dependent on abstraction,then if the layer of abstraction is unchanged,class and its client can change independently.