封装或不封装

时间:2015-01-07 18:44:21

标签: oop swift encapsulation

我有一个很好的MVC设置,我的最新项目将很快扩展到需要更多人处理我创建的代码。我的项目是在Swift。

因此,我对那些参与大型项目的人感到好奇,最简洁的方法是在给定的场景中封装对象。

  1. 我有一个自定义图像类:MyImage
  2. 我有一些特殊的对象,它们包含一个MyImage对象和各种其他数据。让我们称之为DataObject。
  3. 我的问题是关于嵌套。让DataObject用自己的函数封装所有MyImage函数是否更好。

    DataObject.doSomething()
    

    或者更好的做法(特别是在与他人合作时)将所有MyImage函数留在MyImage对象上,只需从DataObject访问MyImage对象:

    DataObject.myImage.doSomething()
    

1 个答案:

答案 0 :(得分:0)

这取决于您希望人们如何使用您的软件。他们需要MyImage的知识吗?如果没有,MyImage的所有函数都应该封装在DataObject中,这样他们就不知道DataObject对它做了什么。让MyImage可访问在我看来打破了封装,因为它让用户过分了解DataObject幕后发生的事情。