簡體   English   中英

為什么某些類(例如java regex Pattern類)沒有任何公共構造函數?

[英]Why do some classes like the java regex Pattern class do not have any public constructors?

Pattern類要求您使用它的public static compile()方法來創建Pattern 這背后的原因是什么? 另外,這是Factory設計模式的一個很好的例子嗎?

在模式的情況下主要是因為

  1. 命名比新的Pattern()更精確
  2. 使用工廠方法允許標准實現者將來更改模式的創建方式。
  3. 現在實現它的方式可能比僅創建一個新實例在某些方面更有效。 將正則表達式編譯為狀態機可能是一個昂貴的過程,因此他們可能已經找到減輕這種情況的方法。

總的來說,目前的觀點是相對於構造函數,尤其是在API類中,更傾向於使用靜態工廠方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM