上帝对象

✍ dations ◷ 2025-11-29 08:25:15 #反模式

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

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

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

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

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

相关

  • 办公场所办公室(office),又称写字楼,是一种让人们在其中办公(工作)的场所,通常是房间的形态,但随着电脑与网络的发达,也渐渐出现不需要实体空间的虚拟办公室(Virtual Office)。内部由办公室所组
  • 富豪富豪可以指:
  • 曼陀罗花曼陀罗花(学名:Datura stramonium,英语:Thorn apple)是茄科类曼陀罗属植物,又名醉心花、狗核桃、醉仙桃、疯茄儿、南洋金花、山茄子、凤茄花、朝鲜牵牛花。几个世纪以来,曼陀罗被用
  • 路易·保罗·卡耶泰路易·保罗·卡耶泰(法语:Louis Paul Cailletet,1832年9月21日-1913年1月5日),法国物理学家、发明家。卡耶泰生于科多尔省塞纳河畔沙蒂永。他在巴黎接受了教育,后回到沙蒂永经营父
  • 尼西亚尼西亚帝国(希腊语:Βασιλεία τῶν Ῥωμαίων)是第四次十字军东征中,西欧骑士和威尼斯人联合攻占了君士坦丁堡,从君士坦丁堡出逃的拜占廷贵族拉斯卡利斯兄弟建立的
  • 飞飞《飞飞》(FlyFF)是由韩国AEONSOFT开发的一款Q版3D魔法飞行大型多人在线角色扮演游戏(MMORPG)。在中国大陆由网易运营。在台湾原由利迪娜科技(Leadinia Technology)运营;后因利迪娜
  • 奥斯卡最佳导演奖奥斯卡最佳导演奖(英语:Academy Award for Best Directing),由美国电影艺术与科学学院通过业内人士投票,颁给每年得票最高的导演,奥斯卡金像奖之一。每一年度第一部影片为得奖影片
  • 塞维利亚主教座堂塞维利亚圣母主教座堂(西班牙语:Catedral de Santa María de la Sede de Sevilla)是西班牙安达卢西亚首府塞维利亚的一座教堂,是天主教塞维利亚总教区的主教座堂。它是世界最大
  • A25高速公路 (意大利)A25高速公路(意大利语:Autostrada A24),和A24高速公路合称公园之路(意大利语:Strada dei Parchi,因穿越大萨索山和拉加山国家公园和马耶拉国家公园而得名),是意大利一条高速公路,自托
  • 路易 (奥尔良公爵)路易·德·奥尔良(法语:Louis d'Orléans,1703年8月4日~1752年2月4日)法国亲王,奥尔良公爵和瓦卢瓦公爵。路易·德·奥尔良是奥尔良公爵腓力二世(路易十五的摄政王)的独子,生于凡尔