上帝对象

✍ dations ◷ 2025-11-17 13:48:25 #反模式

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

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

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

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

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

相关

  • 生态系统生物系统层级关系:生物圈 > 生态系统 > 群落 > 种群 > 个体生态系统(英语:Ecosystem)是指在一个特定环境内,相互作用的所有生物和此一环境的统称。此特定环境里的非生物因子(例如
  • 体香剂体香剂是一类作用在人体皮肤上的物质,来减低因排汗而产生的体味。出汗之所以有异味是因为汗液中包含了人体中分泌的水、氨基酸、脂质等物质,细菌在汗液的环境下极易繁殖,并分解
  • 亚轨道飞行亚轨道太空飞行是进入了太空,但因其飞行轨迹与大气层或地球表面相交而无法完成一周轨道飞行的太空飞行。通常亚轨道飞行是以火箭达成,但Space Gun也曾在实验中达成过。一个常
  • 凌汛凌汛,俗称冰排,是有结冰期的河流常见的一种自然现象,是冰凌对水流产生阻力而引起的江河水位明显上涨的水文现象。冰凌有时可以聚集成冰塞或冰坝,造成水位大幅度抬高,最终漫滩或决
  • 姆班杜语姆班杜语(úmbúndú)是安哥拉的两种被叫做“班杜”(或译“邦杜”)的班图语支语言之一,另一种是金邦杜语。是该国最广泛使用的口头语言。说姆班杜语者为奥文本杜人,而该国三分之一
  • Nizatidine尼扎替丁(INN:nizatidine)是一种组胺H2受体阻抗剂,主要用于抑制胃酸的分泌,并用于治疗消化道溃疡和胃食道逆流。尼扎替丁由礼来公司开发,并以商品名称Tazac和Axid推出市场。尼扎替
  • 詹姆斯·沃德詹姆斯·沃德(James Ward)可以指:
  • 共和党 (消歧义)共和党是诸多政党使用的党名:
  • 亚哥花园亚哥花园(英语:Encore Garden),是台湾中部一座大型花园及已停业游乐园,位于台中市北屯区大坑风景区,曾是台中市知名观光景点之一,以种植各种花卉奇树和水舞表演为卖点,亦有游乐设施
  • 巴西马县巴西马县(马来语:Jajahan Pasir Mas),是马来西亚吉兰丹州西北部的一个县。其面积为614.15平方公里,人口于2010年为189,292。该县北临道北县,西临泰国陶公府素艾哥洛县,东临哥打峇鲁