关于面向对象数据成员访问方式

今天写Android作业的时候,碰到了一个小问题,让我对面向对象中数据成员访问方式的设计有了更深入一步的理解。
这个问题是这样的:我需要在MainActivity里面频繁的创建一些AlertDialog,每次创建都需要写一堆重复的代码设置这些Dialog的界面和事件等。于是我自然而然的想到将这些代码剖离出来,建立一个DlgFactory类,需要的时候调用这个类的方法创建这些对话框。问题在于这些对话框都有一个特点:他们都是为了维护MainActivity的数据而创建的。也就是说,DlgFactory的方法需要访问MainActivity的数据。如果是C++,我可以简单的用友元来解决。但java是没有友元这一设计的。由于把数据成员声明为public的做法饱受批评,因此就只能采取为MainActivity编写方法提供给DlgFactory使用这一方案来解决。编写这些方法的时候我又想到,其实通过编写方法的方式访问数据也是有好处的:因为这样一个数据成员外部访问的方式就非常有限了,出了问题也更容易发现

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,056评论 2 89
  • 旅行听起就很诱人,除了那些世界之最的景观,那些动人的传说,那些形形色色不同的人和事,还有旅途中的确定和不确定,确定...
    灯火旖旎阅读 866评论 0 1
  • 昨天晚上被猝不及防喂了一把狗粮。还是带着爱心的那种。 原因是当我躺在床上无聊玩手机的时候,突然看到了张若昀发的一条...
    小施同学阅读 468评论 0 0