csdn没有在移动上布网,最近移动校园网登不上csdn,今天终于能登上了,小草鸟就写下最近在学的设计模式。
工厂估计也差不多是用的最多的了,对于工厂方法和抽象工厂比较容易混,笔者在这里说下自己的学习的一些理解。
工厂模式:
产品
对于工厂,当然是生产产品的了,当然我们得有产品类,为了扩展性良好,先定义一个产品接口
public interface Animal {
public void print();
}产品:猫
public class Cat implements Animal{
public void print(){
System.out.println("你是猫哦");
}
}产品:鸡
public class Chicken implements Animal{
public void print(){
System.out.println("你是鸡哦");
}
}public class Pig implements Animal{
public void print() {
System.out.println("你是猪哦");
}
}
工厂
哈哈,我们的产品都有了,下面我们不能把他们都放在哪里,当然得生产他们了
下面先定义一个工厂接口,这只是为了扩展性良好哦
public interface Produce{
public Animal produceAnimal();
}工厂接口都有了,我们当然得有具体的工厂生产这些厂品了
工厂:猫
public class Factory_Cat implements Produce{
public Animal produceAnimal() {
return new Cat();
}
}
public class Factory_Chicken implements Produce {
public Animal produceAnimal() {
return new Chicken();
}
}工厂:猪
public class Factory_Pig implements Produce {
public Animal produceAnimal() {
return new Pig();
}
}public class Test {
public void test(){
Produce cat = new Factory_Cat();
cat.produceAnimal().print();
Produce chicken = new Factory_Chicken();
chicken.produceAnimal().print();
Produce pig = new Factory_Pig();
pig.produceAnimal().print();
}
public static void main(String[] args) {
Test test = new Test();
test.test();
}
}bing go!一些人也许会说我可以在建一个肉接口生产肉啊,这样当然能解决问题,只是增加了另一个工厂方法,
但是要是有很多类似的种类需要生产呢?我们会有好多好多的工厂,我们也许会晕头转向吧,哈哈,解决的办法来了,
就是我们的抽象工厂来啦。先到这里,要断网了,明天补上
原文地址:http://blog.csdn.net/u014274324/article/details/45033289