我是设计和构建类的新手,最近开始在设计类时学习基于模式的方法。
我想知道哪种方法更好,以及为何更好的原因。
我的第一种方法是在默认构造函数级别接受一个对象并在其上运行相关的方法。构造对象可能需要从其他类实例中获取类或通过一些静态方法。
第二种方法是通过构造函数接受对象并在其上运行方法。
到目前为止,我已经创建了类似于以下代码模式的设计。
public class TestPattern
{
// Some X method or method of some other object is
// taking care of constructing Object in it's client code
MyObject object= MyObject.GetInstance(10);
public TestPattern()
{
System.err.println("Status of MyObject: "+object);
}
public TestPattern(MyObject object)
{
this.object=object;
}
public void run()
{
object.execute();
}
public static void main(String[] args)
{
new TestPattern().run();
// Constructor is directly responsible
//for creating object in it's client code.
new TestPattern(new MyObject(25)).run();
}
}
class MyObject
{
private int n=0;
public MyObject(int n)
{
this.n=n;
System.out.println("Creating "+this);
}
public String toString()
{
return "Value: "+n;
}
public static MyObject GetInstance(int n)
{
return new MyObject(n);
}
public void execute()
{
System.out.println("Executing "+this);
}
}