簡單工廠模式
目的是為了符合開發高內聚低耦合。
簡單工廠模式是類的創建模式,又叫做靜態工廠方法模式。簡單工廠模式由一個工廠對象決定生產出哪一種產品類的實例
代碼的耦合度太高,會使以后做維護的難度大大增加,所以我們要降低耦合度,這樣代碼模塊間
就分的很清楚,便于維護和閱讀。
下面是簡單工廠模式示例
代碼
創建一個水果的接口
package com.pp.Factory;
????public interface Fruit {
????//種植
????public void plant();
????//生長
????public void grow();
????//收獲
????public void harveset();
}
下面是兩個子類來遵從這個接口,實現里面的方法
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("這是香蕉重寫的收獲方法");
????}
}
然后再建一個管理水果的就是水果種植基地的老板之類的
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;
????????}
}
//想要什么水果就可以把參數寫成什么水果
public static void main(String[] args) {
????Fruit f = Gardener.getFruit("APPLE");
????f.grow();
????Fruit f2 = Gardener.getFruit("BANANA");
????f2.harveset();
????}
}
這樣寫程序,看著容易多了
1、用戶不自己去生產產品,只需要負責去拿自己需要的東西就好了,這樣用戶-->產品之間的耦合度就降低了
2、代碼模塊職責更明確了,有專門消費的模塊、有專門生產的模塊
這就是一個簡單工廠模式
這個代碼還能改進,以后再來寫。