首页 > 代码库 > 简单工厂模式
简单工厂模式
客户端无需知道类名,只需了解参对应数。
通过引入配置文件,无需修改客户端即可添加产品。
工厂类集合了所有的逻辑,一旦不能正常工作,整个系统都受影响。
系统扩展困难,一旦添加新产品久不得不修改工厂逻辑。
抽象产品:
1 public interface Freshwaterfish { 2 void grow();//鱼在生长 3 void harvest();//收获鱼 4 }
具体产品类:
1 public class Carp implements Freshwaterfish { 2 3 @Override 4 public void grow() { 5 System.out.println("鲤鱼在生长!"); 6 } 7 8 @Override 9 public void harvest() { 10 System.out.println("收获鲤鱼!"); 11 } 12 13 }
1 public class Grasscrap implements Freshwaterfish { 2 3 @Override 4 public void grow() { 5 System.out.println("草鱼在生长!"); 6 } 7 8 @Override 9 public void harvest() { 10 System.out.println("收获草鱼!"); 11 } 12 13 }
简单工厂类:
1 public class Fishfarm { 2 public static Freshwaterfish producefish(String type) { 3 switch (type) { 4 case "草鱼": return new Grasscrap(); 5 case "鲤鱼": return new Carp(); 6 7 default: System.out.println("本场不生产这种鱼"); 8 return null; 9 } 10 } 11 }
客户测试类:
1 public class SimpleFactory { 2 3 public static void main(String[] args) { 4 Freshwaterfish mycarp = Fishfarm.producefish("鲤鱼"); 5 if (mycarp!=null) { 6 mycarp.grow(); 7 mycarp.harvest(); 8 } 9 Freshwaterfish mygrasscarp = Fishfarm.producefish("草鱼"); 10 if (mygrasscarp!=null) { 11 mygrasscarp.grow(); 12 mygrasscarp.harvest(); 13 } 14 } 15 16 }
简单工厂模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。