框架中的單態

2021-04-13 05:32:36 字數 587 閱讀 9307

用spring的factory.getbean("")方法構造的bean預設是單態的,所以盡量不要在bean中構造例項字段,並在外部對該字段進行修改,在內部對其讀取。否則就會出現多錯誤。推而廣之所有單態的類都應該避免使用例項字段。

此外對單態模式來說spring 構造bean用的是單態,struts1中的action 也是單態,servlet也是單態的。從設計模式的角度來講可以總結出一條規律,一般來說處於控制邏輯的類一般都設計為單態的,而儲存資料的類,或稱之為狀態類都不應設計為單態的(這個很容易想得到)。

但是到了webwork,以及struts2他們當中的action就不是單例的了,這個又有一點例外。用他們的話就是損失了一點效能,而提高了安全。

不妨看一看struts1和webwork的源**,他們的請求都轉向乙個控制轉向的servlet,這個servlet再根據請求的不同交給不同的action處理,所不同的是,struts1中建立了乙個map他將建立的各個action例項存入map中(對於每個action只建立了乙個例項),當用到某個具體的action 去處理請求時,便從map中取出該action來處理。而webwork對於乙個請求如果要用某個action去處理就直接再建立該action的例項。 

簡單的單態寫法

public static gamemanager instance private static gamemanager instance null void awake 使自己成為唯一的例項 instance this 如果存在多關卡切換,就需要加上下面這句 dontdestroyonload ...

單態設計模式

package com.yanek.test public inte ce usermanager package com.yanek.test public class usermanage ctory public synchronized static usermanager getinsta...

淺說單態類

一說單態類,好多程式設計師都感覺腦袋大了,什麼是單態類,它是幹什麼的,類不是可以有許多的例項嗎,怎麼會有單態類?說白了,單態類就是類的例項只有乙個.這樣大家就都會明白了吧.但是如何做類的例項只有乙份呢?大家的困惑的地方只有乙個,就是類可以在多處new 這個類的例項.可以說new 無處不在.那怎麼實現...