設計模式學習 工廠模式

2021-08-21 11:20:43 字數 3214 閱讀 1434

工廠模式:常用的工廠模式包括三種--簡單工廠、普通工廠以及抽象工廠模式。

1、簡單工廠模式:

package com.demo.******factory;

//介面類

public inte***ce shape

package com.demo.******factory;

public class circle implements shape

}

package com.demo.******factory;

public class square implements shape

}

package com.demo.******factory;

public class ******** implements shape

}

package com.demo.******factory;

public class ******factory

//形狀工廠,根據enum引數決定返回哪種形狀

public shape getshape(enumshapes enumshapes)

return null;

}}

package com.demo.******factory;

public class ******factorydemo

}

特點:工廠類負責接收執行引數,而具體的執行則交給實現類,簡單易理解,但是違反了高內聚低耦合原則,不便於擴充套件,每次增加新的形狀都需要修改原有工廠方法,只能在簡單的業務場景中使用。

2、普通工廠模式:

package com.demo.factory;

import com.demo.******factory.shape;

public inte***ce shapefactory

package com.demo.factory;

import com.demo.******factory.circle;

import com.demo.******factory.shape;

public class circlefactory implements shapefactory

}

package com.demo.factory;

import com.demo.******factory.shape;

import com.demo.******factory.square;

public class squarefactory implements shapefactory

}

package com.demo.factory;

import com.demo.******factory.shape;

import com.demo.******factory.********;

public class ********factory implements shapefactory

}

package com.demo.factory;

public class factorydemo

}

特點:在工廠類(shapefactory)的子類(circlefactory)實現類中完成物件的例項化,把選擇權交給子類,將業務邏輯交給客戶端處理(factorydemo),符合開閉原則,且封裝物件的建立,擴充套件性較高,增加乙個新形狀只需要增加乙個新的形狀工廠即可(rectanglefactory)。

3、抽象工廠模式:

package com.demo.abstractfactory;

public inte***ce shoes

package com.demo.abstractfactory;

public inte***ce tshirt

package com.demo.abstractfactory;

public class nikeshoes implements shoes

}

package com.demo.abstractfactory;

public class niketshirt implements tshirt

}

package com.demo.abstractfactory;

public class adidasshoes implements shoes

}

package com.demo.abstractfactory;

public class adidastshirt implements tshirt

}

package com.demo.abstractfactory;

public inte***ce abstractfactory

package com.demo.abstractfactory;

public class nikefactory implements abstractfactory

@override

public tshirt creattshirt()

}

package com.demo.abstractfactory;

public class adidasfactory implements abstractfactory

@override

public tshirt creattshirt()

}

package com.demo.abstractfactory;

public class abstractfactorydemo

}

特點:抽象工廠提供乙個或建立一系列相關或相互依賴物件的介面,而無需指定它們的類,主要用於解決介面選擇問題,乙個產品族(nike)的物件只能使用同族的產品(nike shoes,nike tshirt)。對新種類的產品擴充套件性較差(shorts,nikeshorts,adidasshorts,並在三個factory中新增介面方法與實現方法),新族的擴充套件性較高。

設計模式學習 工廠模式

工廠模式是較常見的一種設計模式 一 基本特點 工廠模式可分為簡單工廠模式,工廠模式和抽象工廠模式,它們的思路和實現都很相似.基本特點為至少包括以下三個類 工廠類 用new操作符建立各種產品類 抽象產品類 各產品類的基類,定義了產品的介面,具體產品類 抽象產品類的子類,包含了具體實現 使用者在使用時通...

設計模式學習(工廠模式)

這裡說的工廠模式是簡單工廠模式和抽象工廠模式,兩者有一定的區別,也有共同之處。上述過程是開閉原則的乙個典型體現。在下圖的例子中,factory類依賴具體物件的抽象來建立具體的物件 dell,sony 這乙個過程帶來的好處就是實現了factory類與具體產品之間的解耦合。客戶端可以自由的通過facto...

設計模式 工廠模式(學習)

在程式的世界裡,就像射鵰英雄傳一樣,我們的技能就像是武功一樣,我們只有不斷去學習練習才能有機會像郭靖一樣成為 天下第一 我認為技能和武功是很類似的,也有外功和內功,武俠之內功好比是我們技能演算法 武俠的外功好比是我們技能中某一語言的語法 武功秘籍好比是我們每種語言都有api和文件 武俠的勤加練習好比...