上帝对象

✍ dations ◷ 2025-12-03 03:16:32 #反模式

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

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

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

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

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

相关

  • 构词学词法学(英语:morphology,“组织与形态”),又称形态学、构词学,是语言学的一个分支,研究单词(word)的内部结构和其形成方式。如英语的dog、dogs和dog-catcher有相当的关系,英语使用者能
  • CPR心肺复苏术(英语:Cardiopulmonary Resuscitation,CPR)是一种救助心搏骤停病患的急救措施,通过人工保持脑功能直到自然呼吸和血液循环恢复。心肺复苏术并非单一的技术,它包含了一系
  • 水热合成法水热合成法是一种常用的无机材料的合成方法,在纳米材料、生物材料和地质材料中具有广泛的应用。水热/溶剂热合成法的主要步骤是将反应原料配置成溶液在水热釜中封装并加热至
  • 彼得·塞勒斯理查德·亨利·谢勒,CBE(Richard Henry Sellers,1925年9月8日-1980年7月24日),为人熟知的是他艺名彼得·塞勒斯(Peter Sellers),是位演技极为精湛的得奖影星、喜剧演员,自1950年代至19
  • 食器餐具,是用来进行饮食的器具,是日用品之一,如碗、碟、餐刀、餐叉、筷子等。不同的地方、民族有不同的饮食文化,所以餐具也各有不同,例如西方的刀叉与东方的筷子。
  • 茂宜岛毛伊岛(英语:the island of Maui,/ˈmaʊ.iː/)是美国夏威夷州的第二大岛,面积为727.2平方英里(1,883平方公里,在美国岛屿中排名第17位)。 毛伊岛是夏威夷州的知名观光地,也是毛伊县
  • 马克西米利安 (萨克森)马克西米利安·玛利亚·约瑟夫·安东·约翰·巴普蒂斯特·约翰·埃万格利斯塔·伊格纳茨·奥古斯汀·克萨威尔·阿洛易斯·约翰·奈波穆克·延努阿尔·赫尔门奈吉尔德·阿格
  • 日本湖泊列表日本湖泊列表是一个日本国内天然形成的水面湖泊列表。湖沼的名称因地域性和历史的原因而各有不同,有“-湖”、“-池”、“-沼”、“-潟”、“-浦”、“-渊”、“-海”、“-ト
  • 尼夫赫人尼夫赫人(俄语:Нивхи;日语:ニヴフ/ニブフ)旧称吉利亚克人,是西伯利亚东南地区原住民族,分布于黑龙江下游至入海口以及库页岛北部,即今俄罗斯联邦的哈巴罗夫斯克边疆区和萨哈林州
  • 尼亚丰凯尼亚丰凯(法语:Niafunké),是马里的城镇,位于该国北部,由通布图区负责管辖,是尼亚丰凯省的首府,处于廷巴克图西南面250公里的尼日尔河上。坐标:15°55′52″N 3°59′24″W / 15.9311