上帝对象

✍ dations ◷ 2025-12-11 14:34:13 #反模式

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

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

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

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

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

相关

  • 据中医脏象学说,胆与、胃、小肠、大肠、膀胱、三焦合称“六腑”;与“肝”互为表里。主要功能为贮藏和排泄精汁(胆汁)、主决断和调节脏腑气机。胆与其他腑器不同之处,是不会和食物
  • 巴尔扎克奥诺雷·德·巴尔扎克(法语:Honoré de Balzac,1799年5月20日-1850年8月18日),原名奥诺雷·巴尔扎克(Honoré Balzac),法国19世纪著名作家,法国现实主义文学成就最高者之一。他创作的
  • 塞尔柱帝国大塞尔柱帝国(现代土耳其语:Büyük Selçuklu İmparatorluğu;波斯语:دولت سلجوقیان‎),又称塞尔柱帝国、塞尔柱土耳其帝国,是中世纪时期的突厥-波斯、逊尼派伊斯兰
  • 杜聪明杜聪明(1893年8月25日-1986年2月25日),字思牧,大清福建台湾省台北府淡水县三芝人,台湾医师、医学教授,京都帝国大学医学博士,台湾史上首位医学博士(MD, PhD)。高雄医学院(今高雄医学大
  • 爱护动物党爱护动物党(荷兰语:Partij voor de Dieren,缩写为PvdD)是一个荷兰动物权利主义政党,也是世界历史上第一个进入国会的动物权利促进政党。但是该党宣称其非单一议题政党,而是拥有许
  • 生命攸关系统生命攸关系统(life-critical system)或安全攸关系统(safety-critical system)也称为生命关键系统或安全关键系统,是指若系统失效或误动作,会产生以下后果的系统:这类的风险一般会配
  • 喇叭苗话喇叭苗话是湘语下属的一种方言。为在贵州西部晴隆普安两县交界一些乡镇的被新汉族移民称为喇叭苗的族群使用。据喇叭苗人族谱及口传记载,他们的祖上大多是明洪武十三年(1381年
  • 巴图塔站巴图塔站是位于内蒙古自治区鄂尔多斯市伊金霍洛旗巴图塔的一个铁路车站,邮政编码17205。车站建于1989年,有包神铁路经过该站,现仅办理货运,不办理客运业务。车站距离包头东站154
  • 二阶导数的对称性数学中,二阶导数的对称性(也称为混合导数的相等)指取一个元函数的偏导数可以交换。如果关于 x i
  • 锺化民锺化民(1537年-1597年),字维新,号文陆,浙江承宣布政使司杭州府仁和县(今浙江省杭州市)人,明朝政治人物。万历八年(1580年),锺化民登庚辰科进士,授职惠安县知县,政绩卓越,得到御史安九域举荐