//蔬菜下面有番茄/土豆/白菜,现在有一个工厂可以生产蔬菜,有番茄工厂,
土豆工厂,白菜工厂,每个工厂生产自己的蔬菜,可以实现 高类聚,低耦合
那么再在原来的基础上添加新的蔬菜和蔬菜工厂就不会出现因为耦合度过高
需要更改很多东西
********************************************* 蔬菜接口 *********************************************
package com.lovo.simpyfactory;
/**
*
* @author dell LN
*
*/
public interface Vagetables {
public void showinfo();
}
************** 番茄
package com.lovo.simpyfactory;
public class Tomato implements Vagetables { //实现蔬菜接口,实现showinfo方法
public void showinfo(){
System.out.println("番茄....");
}
}
************** 土豆
package com.lovo.simpyfactory;
public class Potato implements Vagetables{ //实现蔬菜接口,实现showinfo方法
public void showinfo(){
System.out.println("土豆....");
}
}
************** 白菜
package com.lovo.simpyfactory;
public class Cabbage implements Vagetables{ //实现蔬菜接口,实现showinfo方法
public void showinfo(){
System.out.println("白菜....");
}
}
********************************************* 工厂接口 *********************************************
package com.lovo.simpyfactory;
public interface FactoryMethod {
public Vagetables getvage(); // 获得蔬菜对象
}
************** 番茄工厂
package com.lovo.simpyfactory;
public class TomatoFactory implements FactoryMethod{ //实现工厂接口
@Override
public Vagetables getvage() {
return new Tomato(); //返回番茄对象
}
}
************** 土豆工厂
package com.lovo.simpyfactory;
public class PotatoFactory implements FactoryMethod{ //实现工厂接口
@Override
public Vagetables getvage() {
// TODO Auto-generated method stub
return new Potato(); //返回土豆对象
}
}
************** 白菜工厂
package com.lovo.simpyfactory;
public class CabbageFactory implements FactoryMethod{ //实现工厂接口
@Override
public Vagetables getvage() {
return new Cabbage(); //返回白菜对象
}
}
************** 测试
package com.lovo.simpyfactory;
public class TestDemo {
public static void main(String[] args) {
FactoryMethod f = new TomatoFactory(); //获得番茄/土豆/白菜工厂
Vagetables v = f.getvage();//获得蔬菜方法
v.showinfo(); //调用showinfo方法,打印内容
}
}