簡單工廠模式
目的是為了符合開發(fā)高內(nèi)聚低耦合。
簡單工廠模式是類的創(chuàng)建模式,又叫做靜態(tài)工廠方法模式静尼。簡單工廠模式由一個(gè)工廠對象決定生產(chǎn)出哪一種產(chǎn)品類的實(shí)例
代碼的耦合度太高,會使以后做維護(hù)的難度大大增加掩缓,所以我們要降低耦合度雪情,這樣代碼模塊間
就分的很清楚,便于維護(hù)和閱讀你辣。
下面是簡單工廠模式示例
代碼
創(chuàng)建一個(gè)水果的接口
package com.pp.Factory;
????public interface Fruit {
????//種植
????public void plant();
????//生長
????public void grow();
????//收獲
????public void harveset();
}
下面是兩個(gè)子類來遵從這個(gè)接口巡通,實(shí)現(xiàn)里面的方法
public class Apple implements Fruit {
????@Override
????public void plant() {
????System.out.println("蘋果類重寫的種植方法");
????}
????@Override
????public void grow() {
????// TODO Auto-generated method stub
????System.out.println("蘋果類重寫的生長方法");
????}
????@Override
????public void harveset() {
????// TODO Auto-generated method stub
????System.out.println("蘋果類重寫的收獲方法");
????}
}
public class Banana implements Fruit {
????@Override
????public void plant() {
????// TODO Auto-generated method stub
????System.out.println("這是香蕉重寫的種植方法");
????}
????@Override
????public void grow() {
????// TODO Auto-generated method stub
????System.out.println("這是香蕉重寫的生長方法");
????}
????@Override
????public void harveset() {
????// TODO Auto-generated method stub
????System.out.println("這是香蕉重寫的收獲方法");
????}
}
然后再建一個(gè)管理水果的就是水果種植基地的老板之類的
public class Gardener {
????//獲取水果的方法
????public static Fruit getFruit(String fruit) {
????????if (fruit.equalsIgnoreCase("apple")) {
????????????return new Apple();
????????} else if(fruit.equalsIgnoreCase("banana")) {
???????????return new Banana();
????????} else {
????????????return null;
????????}
}
//想要什么水果就可以把參數(shù)寫成什么水果
public static void main(String[] args) {
????Fruit f = Gardener.getFruit("APPLE");
????f.grow();
????Fruit f2 = Gardener.getFruit("BANANA");
????f2.harveset();
????}
}
這樣寫程序,看著容易多了
1舍哄、用戶不自己去生產(chǎn)產(chǎn)品宴凉,只需要負(fù)責(zé)去拿自己需要的東西就好了,這樣用戶-->產(chǎn)品之間的耦合度就降低了
2表悬、代碼模塊職責(zé)更明確了弥锄,有專門消費(fèi)的模塊、有專門生產(chǎn)的模塊
這就是一個(gè)簡單工廠模式
這個(gè)代碼還能改進(jìn)蟆沫,以后再來寫籽暇。