今天写Android作业的时候,碰到了一个小问题,让我对面向对象中数据成员访问方式的设计有了更深入一步的理解。
这个问题是这样的:我需要在MainActivity里面频繁的创建一些AlertDialog,每次创建都需要写一堆重复的代码设置这些Dialog的界面和事件等。于是我自然而然的想到将这些代码剖离出来,建立一个DlgFactory类,需要的时候调用这个类的方法创建这些对话框。问题在于这些对话框都有一个特点:他们都是为了维护MainActivity的数据而创建的。也就是说,DlgFactory的方法需要访问MainActivity的数据。如果是C++,我可以简单的用友元来解决。但java是没有友元这一设计的。由于把数据成员声明为public的做法饱受批评,因此就只能采取为MainActivity编写方法提供给DlgFactory使用这一方案来解决。编写这些方法的时候我又想到,其实通过编写方法的方式访问数据也是有好处的:因为这样一个数据成员外部访问的方式就非常有限了,出了问题也更容易发现。
关于面向对象数据成员访问方式
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。