salesforce 零基礎開發入門學習(十四)salesforce中工廠模式的運用


提到工廠模式,想必大家都很熟悉,工廠模式作為一種設計模式,同樣在salesforce中適用。

 舉一個例子,筆作為基類,可以有鋼筆,鉛筆,圓珠筆等等。有一個筆的工廠,當你向它要鋼筆,它就會生產一支鋼筆;當你向他要鉛筆,它就會生產一直鉛筆。

根據上述描述,我們可以發現以下幾點:

1.需要有一個筆的基類,並封裝相應公有方法;

2.需要有相關的筆的子類,繼承基類並實現公有方法並拓展相關自身方法;

3.有一個工廠,通過傳遞參數來確定實例化何種筆。

基類:Pen

1 //類似於java中的abstract
2 public abstract class Pen {
3     //定義getPenName方法,實現類需要實現此方法
4     public abstract String getPenName();
5 }

子類定義兩個,Pencil 以及Gel Pen並實現getPenName方法。

子類:Pencil

1 public class Pencil extends Pen{
2     override public String getPenName() {
3         return 'Pencil';
4     }
5 }

子類:GelPen

1 public  class GelPen extends Pen{
2     override public String getPenName() {
3         return 'GelPen';
4     }
5 }

定義一個常量類,存儲static final類型,便於類之間調用:Sys_Constants

1 public without sharing class Sys_Constants {
2     
3     public static final String CATEGORY_PENCIL = 'pencil';
4     
5     public static final String CATEGORY_GEL_PEN = 'gelPen';
6     
7 }

工廠類,用於提供相應create方法創建Pen:PenFactory

 1 public class PenFactory {
 2     public static Pen create(String penCategory) {
 3         Pen tempPen = null;
 4         if(penCategory != null) {
 5             if(penCategory.trim().equals(Sys_Constants.CATEGORY_PENCIL)) {
 6                 tempPen = new Pencil();
 7             } else if(penCategory.trim().equals(Sys_Constants.CATEGORY_GEL_PEN)) {
 8                 tempPen = new GelPen();
 9             }
10         }
11         return tempPen;
12     }
13 }

測試:在匿名塊中進行工廠創建測試:

1 Pen pencil = PenFactory.create(Sys_Constants.CATEGORY_PENCIL);
2 if(pencil != null) {
3     System.debug(pencil.getPenName());
4 } else {
5     System.debug('工廠創建鉛筆失敗');
6 }

輸出結果為:Pencil.

總結:設計模式與語言無關,其他設計模式理論上也可以適用於salesforce。具體哪種模式有什么好處,請自行查看相關設計模式的圖書。

如果內容有錯誤的地方,希望大神指出,如果有問題可以留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM