設計模式中的工廠模式使用

2021-07-10 09:14:32 字數 3499 閱讀 8965

首先要談到乙個概念,抽象類和抽象方法。抽象類本質上還是乙個類,只不過這個類抽出來的一些公用的方法。這些方法是他的子類都必須使用到的,而且每個子類的對這個方法的執行內容是不一樣的。

比如:public

abstract

class

ruleelse

if(tbname.equals(putablexmhzz.getinstance().gettablename()))else

if(tbname.equals(putablexmtxb.getinstance().gettablename()))else

}第乙個子類

public

class

rulepuxmbfb

extends

rule

@override

public

voidsetrule(intifield,edittextet)

doublea =double.valueof(itemlist.get(5).fieldvalue);

doubleb =double.valueof(itemlist.get(4).fieldvalue);

doublec = ((double) a / b) * 100;

resultvalue =string.format("%.2f", c);

}else

itemlist.get(ifield).fieldvalue = resultvalue;

}@override

public

stringgetrulevalue()

第二個子類

public

class

rulepuxmhzz

extends

rule

@override

public

voidsetrule(intifield,edittextet)

resultvalue = getfscdstr(integer.valueof(itemlist.get(2).fieldvalue));

}else

itemlist.get(ifield).fieldvalue = resultvalue;

}@override

public

stringgetrulevalue()

第三個子類

public

class

rulepuxmtxb

extends

rule

@override

public

voidsetrule(intifield,edittextet)

doublea =double.valueof(itemlist.get(5).fieldvalue);

doubleb =double.valueof(itemlist.get(4).fieldvalue);

doublec = ((double) a / b) * 100;

resultvalue =string.format("%.2f", c);

}else

if(fieldname.equals(itemlist.get(8).fieldname))

doublea =double.valueof(itemlist.get(6).fieldvalue) / 100;

doubleb =double.valueof(itemlist.get(7).fieldvalue) / 100;

doublec = a * b * 100;

resultvalue =string.format("%.2f", c);

}else

if(fieldname.equals(itemlist.get(16).fieldname))

doublea =double.valueof(itemlist.get(6).fieldvalue) / 100;

doubleb =double.valueof(itemlist.get(7).fieldvalue) / 100;

doublec = a * b * 100;

resultvalue = getfscddeep(c);

}else

itemlist.get(ifield).fieldvalue = resultvalue;

}@override

public

stringgetrulevalue()

使用方法:

private

rulerule;

//通過引數

tname

來確定是哪個子類來執行

rule =rule.getrule(context,tname, filteritemlist);

rule.setrule(index,holder.etvalue);

stringvalue = rule.getrulevalue();

holder.etvalue.settext(value);

這樣的好處的提煉出了子類中公共的部分**實現了**的真正復用。這也是工廠方法的使用。

以上是我在工作當中用到的乙個關於抽象類的例項,特此備註以備參考!

設計模式 工廠模式 抽象工廠模式

建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...

設計模式 工廠設計模式

用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...

設計模式 工廠設計模式

工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...