作者psalter (Regular Expression)
看板java
标题Re: [问题] 什麽时候该用getInstance()?
时间Thu Mar 13 11:18:00 2008
※ 引述《Kenqr (夏天的微笑)》之铭言:
: public interface A{ void function(); }
: public class B implements A{ void function(){ /*实作*/ } }
: B只提供function()的实作 没有任何变数
: 所以只需要一个instance让大家共用就可以了
: 当然多生几个instance出来也不会有问题
: 这种情况下应该让B只有一个instance并用getInstance()取得呢
: 或者不必自找麻烦 用new的就好了
: 或是使用anonymous class 直接生出b让大家用
: public static final A b = new A(){ void function(){ /*实作*/ } };
: 请问以上三种方法哪一种比较好 以及为什麽?
关於 B.getInstance();
其实可以参考 Factorty Pattern,
将建构子封装起来有许多好处,包括
(1)可以控制instance的数量,作 Multiton
(2)管理取得此物件的权限:public, protected, default
因此不一定是需要作Singleton时才可应用 getInstance()
当然,与Factory不太一样,这里是直接call物件本身的getInstance method
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.67.10.34
1F:推 adrianshum:严格来说这 pattern 该叫 Factory Method 03/13 11:23