“很多线条”并不意味着这个阶级根本就是一个神的对象,这对于弄清楚你是否应该重构一些东西来说是一个糟糕的可怕基准.有些事情非常复杂,需要一个复杂且固有的大对象.上帝对象的想法就是班级所做的.

例如,如果我做了一个可以的对象

DoMyTaxes()

GiveMeHugs()

LogThisError()

StartGameLoop()

该对象有资格作为神对象,即使它可能只有100行代码.基本思想是所有上述内容都是完全不相关的(在业务逻辑的频谱末端)所以为什么它们都将成为同一个对象的一部分.如果我决定让拥抱持续更长时间,我最终可能会搞砸我的税.输入IRS.

但是,如果您正在使用物理模拟器,那么,Classical()类将具有方法/对象,例如:

Space()

Time()

Velocity()

Speed()

Mass()

Acceleration()

Gravity()

Force()

Impulse()

Torque()

Momentum()

AngularMomentum()

Inertia()

MomentOfInertia()

ReferenceFrame()

Energy()

KineticEnergy()

PotentialEnergy()

MechanicalWork()

VirtualWork()

DAlembertsPrinciple()

(由维基百科提供)

这个对象不是神的对象.这是一个复杂的对象.所有涉及牛顿物理学的东西都经历过它,但它不是上帝的对象……它只是一个非常大的对象.以上可能最终成千上万行代码.

不用说,Quantum()对象会更加复杂.

重申一下,这个想法是关于程序的行为,而不是数据流:

you don’t care whether a single object

holds a lot of the app’s data, or

whether most flows have to go through

a single object. What has more impact

on maintenability is when a single God

Class(tm) holds too much behavior

(business code).

如果您认为存在问题,可以尝试实现不同形式的mediation或更丑陋的模式,例如dependency injection.

java代码god类_java – 如何编写Controller而不将其作为God对象?相关推荐

  1. java基础教程 类_Java零基础系列教程06初识类和对象

    配套视频教程 万物皆对象 分类是人们认识世界的一个很自然的过程,在日常生活中会不自觉地进行分类 身边的对象 顾客 姓名-张浩 年龄-20 体重-60kg 操作: 购买商品 收银员 员工号-10001 ...

  2. java代码解锁华为_如何编写可怕的Java代码?

    我决定告诉你如何编写可怕的Java代码.如果你厌倦了所有这些美丽的设计模式和最佳实践,并且想写些疯狂的东西,请继续阅读. 如果你正在寻找有关如何编写良好代码的建议,请查看其它文章! 对一切使用异常 你 ...

  3. java原子更新类_Java内部具有原子更新的动态热交换环境

    java原子更新类 有人可能会争辩说上述标题可以简称为OSGi ,我想在一开始就放弃这种思考过程. 对于OSGi而言,这没有什么冒犯的,它是一个很棒的规范,在实现层或可用性层上都搞砸了,这就是我对OS ...

  4. java 虚拟机内存类_java 虚拟机类加载 及内存结构

    在面试java工程师的时候,这道题经常被问到,故需特别注意. 1.JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从"Hello World &q ...

  5. 用java构造圆类_JAVA实验报告(圆类.doc

    学资学习网程序设计实验报告年月日姓名班级软工班学号课程名称语言程序设计实验项目称名构造方法与继承指导教师一实验目的编写程序定义圆类把圆的性质和行为用代码块封装起来圆的性质包括圆的半径圆心坐标行为包括计 ...

  6. java定义一个类_Java类的定义格式:Java如何定义一个类

    在面向对象的思想中,最核心的就是对象.为了在程序中创建对象,首先需要定义一个类.类是对象的抽象,它用于描述一组对象的共同特征和行为,例如人都有姓名.年龄.性别等特征,还有学习.工作.购物等行为.以面向 ...

  7. 小白学Java代码:类和对象(上)

    编写学生类 package com.jian.demo1;public class Student { //第一步:编写类,比如:学生类//第二步:编写属性也叫做编写编写成员变量,比如:姓名.年龄.性 ...

  8. Rational Rose正逆向工程(类图转Java代码,Java代码转类图)

     一,正向工程     1.设置默认语言为Java,Tools->Options->Notation->default:选择Java.         2.设置环境变量Class ...

  9. java json帮助类_java 写一个JSON解析的工具类

    上面是一个标准的json的响应内容截图,第一个红圈"per_page"是一个json对象,我们可以根据"per_page"来找到对应值是3,而第二个红圈&quo ...

最新文章

  1. 干货 | 神经网络原来这么简单,机器学习入门贴送给你
  2. Spring Cloud Alibaba发布第二个版本,Spring 发来贺电
  3. SpringBoot2.1.9 多数据源JDBC配置
  4. 网上的画板代码收集和整理
  5. 深入理解JavaScript内部原理(6): 闭包
  6. Java 零注解文档生成工具—smart-doc,看完有替换swagger的冲动
  7. C++实现一个基于mfc的学生信息管理系统
  8. 工具学习——介绍几个C++项目可用的UML工具
  9. 2.ISIS协议原理
  10. 怎样美化计算机的桌面图标,windows10图标美化怎么操作_win10电脑美化方法
  11. 天牛须matlab,BAS天牛须搜索优化算法.pdf
  12. 苹果和谷歌应用商店的APP搜索排名算法
  13. (application)javaweb中application的用法
  14. K8S 报错笔记--持续更新
  15. 如何成为一名网络安全工程师
  16. MATLAB说明图像增强,MATLAB数字图像处理(二)图像增强
  17. 光伏电池PV建模,基于Boost/Buck电路实现最大功率追踪MPPT,包括扰动观察法
  18. 实证操作:R语言实现分位数回归的介绍
  19. 弹球小游戏附全源代码
  20. 网易数帆开源iSCSI服务器tgt独门优化,彻底解决性能问题

热门文章

  1. 状态模式 有限状态机_有限状态机解释
  2. bulma.css_如何建立一个? Bulma CSS的自适应博客设计
  3. 自然语言处理实践Task3
  4. mac安装openjdk
  5. SpringBoot入门-自动配置原理
  6. 美女面试官问我Python如何优雅的创建临时文件,我的回答....
  7. 让人想骂街的 Python 炫技操作:条件语句的七种写法
  8. 图文并茂介绍在VS2010里使用TFS2010
  9. 深度学习《WGAN模型》
  10. 漫步最优化二十八——三次插值法