今天写Android作业的时候,碰到了一个小问题,让我对面向对象中数据成员访问方式的设计有了更深入一步的理解。
这个问题是这样的:我需要在MainActivity里面频繁的创建一些AlertDialog,每次创建都需要写一堆重复的代码设置这些Dialog的界面和事件等。于是我自然而然的想到将这些代码剖离出来,建立一个DlgFactory类,需要的时候调用这个类的方法创建这些对话框。问题在于这些对话框都有一个特点:他们都是为了维护MainActivity的数据而创建的。也就是说,DlgFactory的方法需要访问MainActivity的数据。如果是C++,我可以简单的用友元来解决。但java是没有友元这一设计的。由于把数据成员声明为public的做法饱受批评,因此就只能采取为MainActivity编写方法提供给DlgFactory使用这一方案来解决。编写这些方法的时候我又想到,其实通过编写方法的方式访问数据也是有好处的:因为这样一个数据成员外部访问的方式就非常有限了,出了问题也更容易发现。
关于面向对象数据成员访问方式
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...