《java编程思想》读书笔记——第一章1.3实现方案的隐藏(封装)

1.3实现方案的隐藏

1.细节的隐藏
前文也提过,程序员可以分为,设计底层的高复用性类库的设计师们,利用这些类库达成需要的需求的客户型程序员
设计师所要做的是,从头设计一个类,并将其所有的具体实现隐藏起来,只暴露接口(也就是用该类申明的对象可以接受哪些消息)给客户型程序员

2.为什么要这样做?
因为对于客户程序员来说,他所需要的只是解决问题,而不需要知道细节,就像造车的工厂不需要知道装上去的引擎的工作原理
而对于设计师来说
1.让细节对于客户来说不可见,可以保证自己原创的代码不受到修改而确保其功能性

//类库版本1
class mathTest{
	 int Pi = 3.14;
}

//用户
class user{
	public static main (String args[]){
	mathTest m =new mathTest();
	m.Pi=100;
}
}

在这里,由于Pi没被设置权限,被用户篡改成了100,这将导致整个类库的计算结果都有可能出错

2.只提供接口的话,对于自己的类库的更新迭代变得更加自由

//类库版本1
class mathTest{
	public static int Length = 30;
}

//类库版本2
class mathTest{
	public static int Length = 50;
}
//用户
class user{
	public static main (String args[]){
	System.out.print(mathTest.Length)
}
}

这里只是个简单的示例在这里,如果把版本1中的类替换为了版本2,由于只暴露了接口,即使已经达成了完全不同的效果,但是对于用户来说,并不需要修改自己的代码
因此,我们需要一个权限控制以供我们防止这些预料外的越权操作
3.java中的权限关键词
在默认什么都不加的情况下,使用的是:
friendly/package:友好的,在同一个包下可以由权限
特别声明的情况下:
public:公用的
private:私有的
protect:保护的,与私有唯一的区别是,继承的子类可以有权限

发布了10 篇原创文章 · 获赞 0 · 访问量 182

猜你喜欢

转载自blog.csdn.net/qq_41445205/article/details/104098159