首页 java设计模式 java设计模式学习-工厂模式(实例)

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

package com.yq1012.创建型模式.工厂方法.工厂模式; /** * 动物类 * @author Lyon…

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

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

行为型 Iterator,迭代器模式

行为型 Iterator,迭代器模式

Iterator,迭代器模式:提供一个方法顺序访问一个聚合对象的各个元素,而又不需要暴露该对象的内部表示。 ITERAT...
行为型 Interpreter,解释器模式

行为型 Interpreter,解释器模式

Interpreter,解释器模式:给定一个语言,定义他的文法的一个表示,并定义一个解释器,这个解释器使用该表示来解释语...
结构型 Proxy,代理模式

结构型 Proxy,代理模式

Proxy,代理模式:为其他对象提供一种代理以控制对这个对象的访问 PROXY 跟MM在网上聊天,一开头总是“hi,你好...
结构型 Flyweight,享元模式

结构型 Flyweight,享元模式

结构型 Flyweight,享元模式 FLYWEIGHT 每天跟MM发短信,手指都累死了,最近买了个新手机,可以把一些常...
结构型  外观模式, Facade

结构型 外观模式, Facade

外观模式, Facade FACADE 我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专...
返回顶部