何时以及为什么我们需要将一个班级划分为多个班级?

时间:2013-06-15 04:59:13

标签: java android oop design-patterns coding-style

我是一名Android初学者开发者。目前,我正在开发一个应用程序。但是,我的类很大,因为有很多UI组件(处理onClick,onProgressBarChanged等)。 我的大多数组件都是动态的。所以,我有创建这些组件的方法。

现在我将一些用于初始化UI组件的方法拆分为另一个类。 在这一点上,我正在努力思考/寻找将我的班级分成几个班级的充分理由。

优点:可维护性,可测试性,可重用性

缺点:降低运行时性能

我不确定我错过了哪些优点或缺点?

此外,当我找到重叠方法时,我会划分一个类 我不确定是否还有其他情况需要分类。

2 个答案:

答案 0 :(得分:3)

首先,如果你从未调查过refactoring,那么我会强烈鼓励你这样做。 Martin Fowler拥有一些优秀的资源可以帮助您入门。但是,我略微领先于自己。

首先,您要拆分课程以保持明确的职责划分。你可以在这里想到SOLID原则 - 每个班级做一件事,一件事做得很清楚。

如果您注意到方法,更不用说,不仅仅是做一件事,那么这是停止和重构的好时机 - 也就是说,获取您拥有的代码,并对其应用特定的,专注的重构,以提高可读性和流程,同时保持相同的功能。您实际上在寻找code smells - 可疑的部分代码,不遵循特定的合同或方法,或者是合法的anti-patterns - 这些是开发人员努力的实践避免

处理UI(尤其是Java)的程序往往非常冗长。您应该避免做的是在UI层中放置任何条件业务逻辑,以便于分离,测试和清晰。利用Model-View-Controller模式来理解和抽象出UI(视图)之间必要的分离,以及需要完成的实际工作(控制器),同时保持一些相似的状态(模型)。

答案 1 :(得分:-2)

我们在Android(核心Java)应用程序开发中使用OOPs Concept。如果我们在许多类中拆分我们的一个类,它会在开发期间提供良好的可维护性,可重用性,安全性和编码中的轻松更改。    例如: - 用于数据库处理的Util类,用于Internet连接的网络类,用于不同类型对话框的Dialog类等等...   通过这种方式,我们可以对编码进行分类并随时更改或重新使用。因此,在开发过程中遵循OOPS概念是一种好习惯。

由于