Oop 在面向对象编程中,引用类的最佳方式是什么?
一个好的代码是每个程序员都想写的,优化的,健壮的,性能好的,可重用的,等等。我在面向对象编程方面做了相当长的时间。我见过许多不同的代码,其中不同的开发人员使用不同的引用机制 一些开发人员使用Oop 在面向对象编程中,引用类的最佳方式是什么?,oop,Oop,一个好的代码是每个程序员都想写的,优化的,健壮的,性能好的,可重用的,等等。我在面向对象编程方面做了相当长的时间。我见过许多不同的代码,其中不同的开发人员使用不同的引用机制 一些开发人员使用 Classname c = new Classname(); c.method(); c.method2(); 等等 而一些开发人员使用了以下策略 (new ClassName()).method(); (new ClassName()).method2(); 我想知道他们两个的优点是什么,他们之间的实
Classname c = new Classname();
c.method();
c.method2();
等等
而一些开发人员使用了以下策略
(new ClassName()).method();
(new ClassName()).method2();
我想知道他们两个的优点是什么,他们之间的实际区别是什么
Classname c = new Classname();
c.method();
c.method2();
如果要重用对象,它最好在调用方法之前创建一次对象,因此比
(new ClassName()).method();
(new ClassName()).method2();
这基本上就是每次调用方法时创建一个新对象
考虑这一点:
(new ClassName()).getName(); // Returns default value John Doe
(new ClassName()).setName('Steve');
(new ClassName()).getName(); // Returns default value John Doe
Classname c = new Classname();
c.getName(); // Returns default value John Doe
c.setName('Steve');
c.getName(); // Returns Steve
第二个例子没有意义。它表明
类名
是无状态的,因此可以使方法成为静态的
。即使他们需要使用一些构造函数参数(虽然在您的示例中没有),如果可以实例化一个对象一次,为什么还要实例化两次呢?在microscale中,这比只创建一次对象要慢。此外,它也不能帮助内存管理环境中的垃圾收集器。当然,在大多数情况下,这两个问题可以忽略不计
对于第二个示例,我可以想象的唯一情况是一个引导场景,当您在主分区中设置整个应用程序并启动它时:
main()
{
(new Application(...)).Run();
}
将只有一个应用程序对象,并且只需要调用一个方法,因此保留其实例的句柄并不重要。另一个示例是启动一些自定义线程类来执行一些后台操作:
{
(new BackgroundWorkerThread(...)).Start();
}
我从来没有见过一个理智的例子,用您介绍的方式从同一个类调用两个实例方法