java工厂模式式代码_java设计模式学习-工厂模式(实例)

package com.yq1012.创建型模式.工厂方法.工厂模式;

/**

* 动物类

* @author Lyon Yao

*

*/

public abstract class Animal {

private String name;

public Animal() {

super();

// TODO Auto-generated constructor stub

}

public Animal(String name) {

super();

this.name = name;

}

public abstract void eat();

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

package com.yq1012.创建型模式.工厂方法.工厂模式;

/**

* 母亲接口

* @author Lyon

*

*/

public interface AnimalMother {

/**

* 生育动物

* @return

*/

public Animal giveBirth();

}

package com.yq1012.创建型模式.工厂方法.工厂模式;

/**

* 猫类

* @author Lyon Yao

*

*/

public class Cat extends Animal {

public Cat() {

// TODO Auto-generated constructor stub

}

public Cat(String name) {

super(name);

// TODO Auto-generated constructor stub

}

@Override

public void eat() {

// TODO Auto-generated method stub

System.out.println("I like to eat fish!");

}

}

package com.yq1012.创建型模式.工厂方法.工厂模式;

/**

* 猫母亲 生猫咪

* @author Lyon Yao

*

*/

public class CatMother implements AnimalMother {

@Override

public Animal giveBirth() {

// TODO Auto-generated method stub

Animal cat=new Cat();

System.out.println("猫母亲生了一只小猫眯");

return cat;

}

}

package com.yq1012.创建型模式.工厂方法.工厂模式;

/**

* 狗类

* @author Lyon Yao

*

*/

public class Dog extends Animal {

public Dog() {

// TODO Auto-generated constructor stub

}

public Dog(String name) {

super(name);

// TODO Auto-generated constructor stub

}

@Override

public void eat() {

// TODO Auto-generated method stub

System.out.println("I like to eat bone!");

}

}

package com.yq1012.创建型模式.工厂方法.工厂模式;

/**

* 狗母亲 生狗

* @author Lyon Yao

*

*/

public class DogMother implements AnimalMother {

@Override

public Animal giveBirth() {

// TODO Auto-generated method stub

Animal dog=new Dog();

System.out.println("狗母亲生了一只小狗");

return dog;

}

}

package com.yq1012.创建型模式.工厂方法.工厂模式;

public class Test {

public static void main(String[] args) {

//工厂方法模式:其主要是对各个类型的东西分类生产,但分类生产的对象仍然是具有某一特性的

//譬如说:前面的静态工厂类是一个综合造车工厂,不管是汽车还是火车都能生产,

//而工厂方法模式就是工厂具体分工,造汽车的工厂只造汽车,造火车的只造火车,不管造汽车还是火车但造出来的还是车。

//具体代码例子如下:(这里的例子和上面的例子是一起的,具狗生好多小狗,猫生好多小猫的例子,如果不具体那么是母动物都能生的)

AnimalMother mother=new CatMother();

mother.giveBirth();

mother=new DogMother();

mother.giveBirth();

}

}

来源于  http://blog.csdn.net/renhui999/article/details/8482977

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值