封装是如何隐藏信息、保护数据
抽象:抽象是隐藏方法的具体实现
抽象到底是什么?
抽象及其前面讲到的封装都是人类处理复杂性的有效手段。在面对复杂系统的时候,人脑能承受的信息复杂程度是有限的,所以我们必须忽略掉一些非关键性的实现细节。
而抽象作为一种:
只关注功能点不关注具体实现的设计思路,
这样的好处:正好帮我们的大脑过滤掉许多非必要的信息
举例
图片存储功能的Interface:
package p2.code.obj.lab_05_02;
import p2.code.obj.lab_05_02.model.Image;
import p2.code.obj.lab_05_02.model.Picture;
import p2.code.obj.lab_05_02.model.PictureMetaInfo;
public interface IPictureStorage {
void savePicture(Picture picture);
Image getPicture(String pictureId);
void deletePicture(String pictureId);
void modifyMetaInfo(String pictureId, PictureMetaInfo metaInfo);
}
Interface的具体实现
package p2.code.obj.lab_05_02;
import p2.code.obj.lab_05_02.model.Image;
import p2.code.obj.lab_05_02.model.Picture;
import p2.code.obj.lab_05_02.model.PictureMetaInfo;
/*
*/
public class PictureStorage implements IPictureStorage {
@Override
public void savePicture(Picture picture) {
}
@Override
public Image getPicture(String pictureId) {
return null;
}
@Override
public void deletePicture(String pictureId) {
}
@Override
public void modifyMetaInfo(String pictureId, PictureMetaInfo metaInfo) {
}
}
调用者在使用图片存储功能的时候,只需要了解 IPictureStorage 这个接口类暴露了哪些方法就可以了
不需要去查看 PictureStorage 类里的具体实现逻辑