简单工厂模式
目的是为了符合开发高内聚低耦合。
简单工厂模式是类的创建模式,又叫做静态工厂方法模式。简单工厂模式由一个工厂对象决定生产出哪一种产品类的实例
代码的耦合度太高,会使以后做维护的难度大大增加,所以我们要降低耦合度,这样代码模块间
就分的很清楚,便于维护和阅读。
下面是简单工厂模式示例
代码
创建一个水果的接口
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、代码模块职责更明确了,有专门消费的模块、有专门生产的模块
这就是一个简单工厂模式
这个代码还能改进,以后再来写。