上帝对象

✍ dations ◷ 2025-11-12 21:03:28 #反模式

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

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

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

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

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

相关

  • 东周前770年-前256年东周(前770年至前256年),是历史上对国都东迁以后的周朝的称呼,相对于之前国都在镐京的时期,即西周。东周也是“春秋时代”的开始。东周京都于前770年自镐京(今陕西
  • 1993年 扎科帕内第十六届冬季世界大学生运动会于1993年在波兰的扎科帕内与塔特拉举行。这是波兰首次主办冬季世界大学生运动会。吉祥物为沙布立克(Sablik,是扎科帕内的一种土拨鼠)王锦芳在两项
  • 曾宪政曾宪政(1946年7月10日-),台湾化学工程研究者、教育工作者,台南市七股区人,曾任国立新竹教育大学应用科学系教授兼校长。曾宪政于国立台湾大学化学工程系毕业后,在美国西雅图的华盛
  • 12猛汉《12勇士》(英语:12 Strong,或称作12 Strong: The Declassified True Story of the Horse Soldiers)是一部2018年美国战争片,由尼可莱·弗格席(英语:Nicolai Fuglsig)执导,同时也是弗
  • 内布拉斯加州内布拉斯加州议会(英语:Nebraska Legislature)是美国内布拉斯加州的一院制议会。该州的一院制,使内布拉斯加州在美国各州中独树一帜;它拥有49名成员,也是美国所有州中最小的立法机
  • 贝内利M4 Super 90半自动霰弹枪贝内利M4(Super 90)(英语:Benelli M4 Super 90)是一系列由意大利枪械制造商贝内利公司所设计和生产的半自动霰弹枪(战斗霰弹枪)。目前在数十个国家的军队、警队和特种部队中服役,除
  • 奇希尔图马奇希尔图马(格鲁吉亚语:ჩიხირთმა)是一道乔治亚传统料理,制作过程几乎不用到蔬菜。奇希尔图马的底料是鸡肉(有时用羊肉)汤,之后加入鸡蛋和少量小麦粉等原料熬煮。出锅前加入
  • 艾芙琳·别列津艾芙琳·别列津(英语:Evelyn Berezin,1925年4月12日-2018年12月8日),美国计算机程序设计师。她设计了第一套电脑文书处理器,被视为复制粘贴发明者,并协助设计第一套电脑航空订位系统
  • 何塞·拉斐尔·卡雷拉·图尔西奥斯何塞·拉斐尔·卡雷拉·图尔西奥斯(José Rafael Carrera Turcios,1814年10月24日-1865年4月14日)为危地马拉政治家、军人。拉斐尔·卡雷拉1814年10月24日生于危地马拉城,他出身
  • 白云湖 (广州)广州的白云湖位于中国广州市中心城区西北部,是广州市治水重点项目之一。工程由广和泵站、引水渠、白云湖、石井河泵站(船闸)等水利工程组成。主要设计功能为调水补水、区域雨