java-設計模式(結構型)-【享元模式】

來源:互聯網
上載者:User

標籤:

1.享元模式(Flyweight)

定義:享元模式的主要目的是實現對象的共用,即共用池,當系統中對象多的時候可以減少記憶體的開銷,通常與原廠模式一起使用。

  1.1 工廠

//工廠:內建一個池,如果存在了則取出,否則則建立加入池中public class FactoryPool {private Hashtable<String,Person> pool=new Hashtable<String,Person>();public Person getPerson(String name){  //先從池中將人取出,沒有則建立一個放入池中  Person p=pool.get(name);  if(p==null)  {  //建立並加入池中  System.out.println("工廠建立一個人:"+name);  p=new Person(name);  pool.put(name, p);  }  System.out.println("返回一個人:"+name);  return p;}}class Person{private String name;public Person (String name){this.name=name; }}

  1.2 測試

public class Test {public static void main(String[] args) {// TODO Auto-generated method stub        FactoryPool  f=new FactoryPool();        //從工廠中取人        Person p2=f.getPerson("hq");        Person p3=f.getPerson("cyx");        Person p1=f.getPerson("hq");}}

  1.3 運行結果

工廠建立一個人:hq返回一個人:hq工廠建立一個人:cyx返回一個人:cyx返回一個人:hq

  

 

java-設計模式(結構型)-【享元模式】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.