pax*_*blo 16
基本上,是的,这是为了防止人们搞砸东西.
封装(信息隐藏)是您正在寻找的术语.
通过仅向外界发布最少的信息,您可以随意更改内部信息.
例如,假设您将电话簿实现为一系列条目,而不是隐藏这一事实.
然后有人出现并编写代码来搜索或操作您的数组,而无需通过"正常"界面.这意味着,当您想要开始使用链表或其他更高效的数据结构时,它们的代码将会中断,因为它使用了该信息.
这是你发布这些信息的错,而不是他们使用它的信息:-)
经典的例子是制定者和吸气剂.您可能认为您可以在类中公开温度变量本身,以便用户可以执行以下操作:
Location here = new Location();
int currTemp = here.temp;
Run Code Online (Sandbox Code Playgroud)
但是,如果您希望以后在要求温度时实际上从气象局获取网络信息,该怎么办?如果你首先封装了信息,那么调用者就会这样做:
int currTemp = here.getTemp();
Run Code Online (Sandbox Code Playgroud)
并且您可以根据需要更改该方法的实现.您唯一需要保留的是API(函数名,参数,返回类型等).
有趣的是,它不只是在代码中.某些大公司会用以下短语来记录他们的文档:
此技术信息仅供参考,在将来的版本中可能会更改.
这允许他们提供客户想要的东西(额外的信息),但不会锁定他们永远支持它.
主要原因是您(图书馆开发人员)有保险,没有人会使用您不希望维护的部分代码.
您的代码的每一个公共部分都可以,并且不可避免地会被您的客户使用.如果您后来发现您的设计实际上非常糟糕,并且版本2.0应该写得更好,那么您会意识到您的付费客户实际上希望您保留所有现有功能,并且您已经锁定以保持向后兼容性的价格制作更好的软件.
通过将尽可能多的代码编写为私有代码,您毫无保留地声明此代码不是任何人的业务,并且您可以并且将能够随时重写它.
| 归档时间: |
|
| 查看次数: |
927 次 |
| 最近记录: |