上帝对象

✍ dations ◷ 2025-12-11 02:05:31 #反模式

在面向对象编程领域, 一个上帝对象(God object)是一个或者的对象。 上帝对象是反面模式的一个例子。

结构化编程背后的基本概念是一个大型的问题应该被分解成为多个较小的问题中(分而治的策略)并且针对每个较小的问题提出解决方案。当每个小问题都得到解决后,大问题本体就得到了解决。因此对象应该知道的一切就是。类似的,对象应该解决的问题是它问题。

基于上帝对象编写的代码并不遵从上述的方式。取而代之的是程序的整体功能都被编程到一个单一的"了解全部"的对象当中,这个对象维护了整个程序的大部分信息并且提供了操作数据的大部分方法。所以这个对象持有过多的数据以及负责过多的方法,它在程序中的角色就如同上帝一般。不同于编写直接在彼此之间进行交互的对象,其他程序中的对象都依赖于这个上帝对象获得信息以及交互。由于上帝对象被过多的其他代码所引用,相比一个进行了均匀切分的程序而言维护变得更加的困难。

在过程化编程语言中没有使用子程序或者过多的使用了全局变量进行信息存储都是在面向对象编程编程中的上帝对象的一个类似物。

创造一个上帝对象通常都被认为是一个不好的编程实现,这种技术偶尔会在紧耦合的编程环境中(如微处理器)被使用,在这些环境中微小的性能提升以及控制集中相比于维护以及编程的优雅而言是更加重要的。

相关

  • 南极洲/南极地方南极洲(英语:Antarctica)是地球最南端的洲,位于南半球的南极区,是地理南极的所在地。南极洲大部分区域都在南极圈内,四周被南冰洋环绕。南极洲是世界上的第五大洲,其面积约为1400万
  • 视网膜双极细胞双极细胞在视网膜中位于感光细胞(包括视杆细胞、视锥细胞)和神经节细胞(英语:Retinal ganglion cell)之间,直接或者间接地将信号由感光细胞传递到神经节。顾名思义,视网膜中的双极
  • 法意《论法的精神》(法语:De l'esprit des lois),最早的中文版本译作《法意》,法国思想家孟德斯鸠的政治学名著,历时14年著成。他采取与意识主义和自然主义截然不同的方法来分析政治行
  • 星条旗美国国旗旗面由13道红白相间的宽条构成,左上角还有一个包含了50颗白色小五角星的蓝色长方形。50颗小星代表了美国的50个州,而13条间纹则象征着美国最早建国时的13个殖民地。红
  • 马纳萨斯马纳萨斯(Manassas, Virginia)是美国弗吉尼亚州东北部的一个独立城市。面积25.8平方公里。根据美国2000年人口普查,共有人口35,135人。马纳萨斯成立于1975年5月1日。城名来自马
  • 美国中南部美国中南部(South Central United States)是美国的一个地理区域。包括了美国南部的西部地区。路易斯安那、阿肯色。俄克拉荷马和德克萨斯州多被视为美国中南部。美国人口普查
  • 国家陆地面积列表索引 国防预算 石油储量 军事(武装部队) 死刑 国债 生育率 最高点 官方语言 地理 政体 面积 代码 陆地面积 人口 人口密度 国内生产总值 国徽 国旗 国歌 国家格言 首都 城市
  • 托马斯·普里克里尔托马斯·普里克里尔(捷克语:Tomáš Přikryl;1992年7月4日-)是一位捷克足球运动员。在场上的位置是边锋和前锋。他现在效力于捷克足球甲级联赛球队布拉格杜卡拉足球俱乐部。他也
  • 阿尔吉尔达斯阿尔吉尔达斯(立陶宛语:Algirdas,白俄罗斯语:Альгерд,乌克兰语:Ольгерд,波兰语:Olgierd,希腊语:Αλγερδος,约1296年-1377年5月)是中世纪时立陶宛的统治者之一;立陶
  • 舍尔沙舍尔沙(普什图语:شیر شاہ سوری‎ - ,1472年-1545年5月22日)是印度比哈尔一带的一名阿富汗普什图人,杰出的军事家,苏尔帝国的建立者,莫卧儿帝国的重要对手。舍尔沙将鼎盛中