設計模式-原廠模式

來源:互聯網
上載者:User

原廠模式可以分為兩種,一種是簡單工廠,另外一種是抽象工廠。

簡單工廠,用來集中產生對象樣本的

例如,最常見的用法就是用來產生持久層對象;

public class SimpleFactory {
 

 private static UserDao  userDao = new UserDaoImpl();
 public static UserDao getUserDao(){
  return userDao;
 }
}

 

抽象工廠:

  1. public abstract class AbstractDuckFactory {
  2.     public abstract Quackable createMallardDuck();
  3.     public abstract Quackable createRedheadDuck();
  4.     public abstract Quackable createDuckCall();
  5.     public abstract Quackable createRubberDuck();
  6. }
  1. public class CountingDuckFactory extends AbstractDuckFactory {
  2.   
  3.     public Quackable createMallardDuck() {
  4.         return new QuackCounter(new MallardDuck());
  5.     }
  6.   
  7.     public Quackable createRedheadDuck() {
  8.         return new QuackCounter(new RedheadDuck());
  9.     }
  10.   
  11.     public Quackable createDuckCall() {
  12.         return new QuackCounter(new DuckCall());
  13.     }
  14.    
  15.     public Quackable createRubberDuck() {
  16.         return new QuackCounter(new RubberDuck());
  17.     }
  18. }

抽象工廠,要想使用它,就必須首先執行個體化它,然後將它傳入一些針對抽象類別型所寫的代碼中。所以可以把客戶從所使用的具體產品中解耦。

聯繫我們

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