简单工厂模式

简单工厂模式又称为静态工厂方法模式,它用来定义一个具体的工厂类来创建一些类的实例,而这些被创建的类都应该有一个共同的父类,这样就可以专注于抽象。

 

如老虎,鹦鹉,海豚都是动物类的实例。

当我们在程序的客户端要使用这些动物的具体实例时,就需要生成各个动物的实例对象。

当使用了简单工厂模式的时候,客户端不再负责对象的创建,只负责对象的调用。

1,所有动物类的接口

package joeho.net.csdn.blog.SimpleFactory;

public interface Animal {
 public void eat();
}

2,老虎类

package joeho.net.csdn.blog.SimpleFactory;

public class Tiger  implements Animal{
 
 public void run() {
  System.out.println("老虎会跑");
 }
 public void eat() {
  System.out.println("老虎会吃");
 } 
}

3,海豚类

package joeho.net.csdn.blog.SimpleFactory;

public class Doiphin  implements Animal{
 

 public viod swim() {

  System.out.println("海豚会游泳");
 }

 public void eat() {

  System.out.println("海豚会吃");
 } 
}

 

4,鹦鹉类

package joeho.net.csdn.blog.SimpleFactory;

public class Parrot implements Animal {
 
 public void fly() {

  System.out.println("鹦鹉会飞");
 }

 public void eat() {

  System.out.println("鹦鹉会吃");
 } 
}

 

5,工厂类

package joeho.net.csdn.blog.SimpleFactory;


public class AnimalFactory {

 public static Animal creatAnimal(String name) {
  /*
  Class a = Class.forName(name);
  Animal anm = (Animal)a.newInstance();
  return anm;
  */
  if("Tiger".equals(name))
  {
   return new Tiger();
  }else if("Doiphin".equals(name))
  {
   return new Doiphin();
  }else if("Parrot".equals(name))
  {
   return new Parrot();
  }
 } 
}
5,客户端调用代码

Animal anm = AnimalFactory .creatAnimal("Tiger");

 anm.run();

anm.eat();

 

简单工厂模式的缺点:

所有对象的创建和初始化都需要在工厂类中实现,当创建的对象很多时,工厂类将会变得异常庞大,不利于代码的维护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值