实用程序类是邪恶的吗? [英] Are utility classes evil?

查看:24
本文介绍了实用程序类是邪恶的吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看到这个问题:If a "Utilities" class is evil, where do I put my generic code?

我想,为什么实用程序类是邪恶的?

假设我有一个具有数十个类深度的域模型。我需要能够对实例进行XML实例化。我是否要在父级上创建toXml方法?我要创建MyDomainXmlUtility.toXml帮助器类吗?这是业务需求跨越整个域模型的情况--它真的属于实例方法吗?如果应用程序的XML功能上有很多辅助方法怎么办?

推荐答案

实用程序类并不完全是邪恶的,但它们可能会违反构成良好的面向对象设计的原则。在好的面向对象设计中,大多数类应该表示单个对象及其所有属性和操作。如果您正在对某个对象进行操作,则该方法可能应该是该对象的成员。

但是,有时您可以使用实用程序类将许多方法分组在一起-例如java.util.Collections类,它提供了许多可以在任何Java集合上使用的实用程序。它们不是特定于一种特定类型的集合,而是实现可以在任何集合上使用的算法。

实际上,您需要做的是考虑您的设计,并确定将方法放在哪里最有意义。通常,它作为类中的操作。但是,有时它确实是作为一个实用程序类。但是,当您确实使用实用程序类时,不要只将随机方法抛入其中,而是要按目的和功能组织方法。

这篇关于实用程序类是邪恶的吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆