java設計模式(簡例)-原廠模式

來源:互聯網
上載者:User

原廠模式:根據原廠模式實現的類可以根據提供的資料產生一組類中某一個類的執行個體,而這一組類有一個公用的抽象父類

 

//實現一個InterfaceFactory介面

package factory;

public interface InterfaceFactory {

 public void say();
}

  • //建立Son1類,該類用於實現InterfaceFactory並列印出son1

package factory;

public class Son1 implements InterfaceFactory {

  1.  @Override
     public void say() {
      // TODO Auto-generated method stub
      System.out.println("son1");
     }

}

//建立Son2類,該類也用於實現InterfaceFactory介面並列印出son2

 

package factory;

public class Son2 implements InterfaceFactory {

 @Override
 public void say() {
  // TODO Auto-generated method stub
  System.out.println("son2");
 }

}

 

//定義Factory類,在類中聲明一個靜態方法,用於實現Son1和Son2介面

package factory;

public class Factory {

 public static InterfaceFactory createFactory(int i){
  InterfaceFactory in1;
  if(i==1){

//使用介面回調,將類1的對象付給介面使用
   in1=new Son1();
  }else{
   in1=new Son2();
  }
  
  return in1;
 }
}

//定義Test測試類別,該類用於實現具體調用son1或son2類中的方法

package factory;

public class Test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  InterfaceFactory in1=Factory.createFactory(2);//如果傳的值是2,則會列印出son2,反之為1
  in1.say();
  
 }

}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.