我只有一种方法,我需要几个不同的类来访问,它只是一个工具类只有一个方法似乎跛脚。需要使用这个方法的类已经继承了一个抽象类,所以我不能使用继承。你们在这种情况下会做什么?几个类共享的一种方法
回答
[I] T,似乎只是跛脚制作工具 类只有一个方法
只要做到这一点,它会越来越大。它总是这样。在任何非平凡的解决方案中,常见的功能或性质都是必需的。
你是什么意思,你不能使用继承?
如果您在抽象类中编写方法,还可以编写实现(并非抽象类中的所有内容都必须是抽象的)。
但一般来说,建议拥有某种'GeneralUtils'类;导致你最终得到一些这些功能。
我的意思是我不能用这些类可以共享的方法创建基类/抽象类,因为它们已经从不同的基类继承。 – Allensb 2009-08-13 04:44:31
哦;好吧,有道理。 – 2009-08-13 04:45:22
请记住,一个班只是一个小型,专注的机器。如果该类只有一种方法,那么它只是一个小而专注的机器。它没有什么错,集中代码很有价值。
本网站不具有“起立鼓掌”的选项,所以我希望你会满足于在给予好评和令人鼓舞的评论。说得好! – 2009-08-13 05:08:50
我需要更多信息才能给出明确的答案。 但是,一个命名良好的类只有一个命名方法可以为可读性创造奇迹(与例如基于继承的解决方案相比)
因为您使用术语实用程序方法,所以我会说创建一个静态类用静态方法完成。
还有就是你可以用:-)
作弊创建你的类可以“落实”,但是,创建一个接口上的扩展方法的接口,你的类,然后奇迹般地获得该方法无需调用实用类...
public Interface IDoThisThing {}
public static void DoThisThingImpl(this IDoThisThing dtt)
{
//The Impl of Do this thing....
}
现在在你的类,你可以只添加IDoThisThing
public class MyClass, MyBaseClass, IDoThisThing
{
//...
}
,他们把那东西:-)
注意,这只是有效实用程序类中的syntally糖,但它确实使客户端代码非常干净(就像在您的类中出现的方法一样)。
可以使用扩展方法...
namespace ExtendMe
{
public interface IDecorate { }
public static class Extensions
{
public static void CommonMethod(this IDecorate o) { /* do stuff */ }
}
public class Blah :IDecorate {}
public class Widget : IDecorate {}
class Program
{
static void Main(string[] args)
{
new Blah().CommonMethod();
new Widget().CommonMethod();
}
}
}
- 1. 在同一类的几种方法之间共享单个POSTGRESQL连接
- 2. 几个类共享另一个类的实例
- 3. 几个按钮的一种方法?
- 4. 派生类共享方法
- 5. OpenMP几个“共享” - 指令?
- 6. 在几个类之间共享一个AVL树
- 7. 在两个类之间使用按钮共享一个方法
- 8. 在几个类中的一种方法中捕获异常的好方法
- 9. Python 3:在一个类中的方法之间共享变量
- 10. 几个WCF服务可以共享一个公共BaseAddress吗?
- 11. 将方法更改为以另一种形式访问的共享方法
- 12. 共享一个场法
- 13. 一种在多个页面之间共享fsockopen()的返回值的方法?
- 14. 关于iOS共享的几个问题
- 15. 模拟与实现。如何在单个Test类中共享这两种方法?
- 16. 共享类别表和PHP OOP方法
- 17. 一种通过Rails在多个httpd线程之间共享变量的方法?
- 18. 在一个类中只有共享的函数/方法是否是一种良好的习惯?
- 19. 在两种解决方案中共享一个条件编译类库?
- 20. Facebook中的共享方法
- 21. 当几个共享相同的类时,找到一个DOM节点
- 22. 在同一类中的方法之间共享一个对象(带回发)
- 23. 共享一段代码有方法的类里面在Python
- 24. 在一个类中的多个方法之间共享NSArray内容
- 25. 执行几种方法
- 26. 共享方法和同一个表的两个模型? [CakePHP]
- 27. 共享变量acoss几个python文件
- 28. 在几个QMainWindows中共享QUndoStack?
- 29. C++和Ruby共享公共类的最佳方法是什么?
- 30. WPF,两个UserControl类之间的共享方法
一件事,不要害怕正在小班的。有时候人们会觉得一个班上应该有一堆“东西”。但它只是“语法”。如果它很有用,那就只用一件东西做一堂课。甚至什么也没有!没有规则:) – 2009-08-13 06:07:46
最好有N个类,每个类有1个有用的方法,而描述性的名称比1个类有N个不相关的方法与神秘的名字。 – sal 2009-08-13 14:52:09