package com.pythoncat.abstructfactory.product;
/**
* Created by pythonCat on 16-3-26.
*/publicinterfaceProduct {
}
* 2.一级产品结构类
package com.pythoncat.abstructfactory.product;
/**
* Created by pythonCat on 16-3-26.
*/publicinterfaceProductAextendsProduct {void doSomething();
}
----------------------------------
package com.pythoncat.abstructfactory.product;
/**
* Created by pythonCat on 16-3-26.
*/publicinterfaceProductBextendsProduct {void doSomething();
}
3.具体的产品类
package com.pythoncat.abstructfactory.product.impl;
import com.pythoncat.abstructfactory.product.ProductA;
/**
* Created by pythonCat on 16-3-26.
*/publicclassProductA1implementsProductA {publicProductA1() {
}
publicvoiddoSomething() {
}
}
-----------------------
package com.pythoncat.abstructfactory.product.impl;
import com.pythoncat.abstructfactory.product.ProductA;
/**
* Created by pythonCat on 16-3-26.
*/publicclassProductA2implementsProductA {publicProductA2() {
}
publicvoiddoSomething() {
}
}
=============================
package com.pythoncat.abstructfactory.product.impl;
import com.pythoncat.abstructfactory.product.ProductB;
/**
* Created by pythonCat on 16-3-26.
*/publicclassProductB1implementsProductB {publicProductB1() {
}
publicvoiddoSomething() {
}
}
-------------------
package com.pythoncat.abstructfactory.product.impl;
import com.pythoncat.abstructfactory.product.ProductB;
/**
* Created by pythonCat on 16-3-26.
*/publicclassProductB2implementsProductB {publicProductB2() {
}
publicvoiddoSomething() {
}
}
产品结构展示完成,然后是建立相同结构的工厂
1.抽象工厂类
package com.pythoncat.abstructfactory.factory;
/**
* Created by pythonCat on 16-3-26.
*/publicinterfaceCreateor {
}
2.对应具体产品结构的工厂
package com.pythoncat.abstructfactory.factory.impl;
import com.pythoncat.abstructfactory.factory.Createor;
import com.pythoncat.abstructfactory.product.ProductA;
import com.pythoncat.abstructfactory.product.ProductB;
import com.pythoncat.abstructfactory.product.impl.ProductA1;
import com.pythoncat.abstructfactory.product.impl.ProductB1;
/**
* Created by pythonCat on 16-3-26.
*/publicclassConCreateor1implementsCreateor {public ProductA fracoryA() {
returnnew ProductA1();
}
public ProductB fracoryB() { returnnew ProductB1(); }
}
-----------------
package com.pythoncat.abstructfactory.factory.impl;
import com.pythoncat.abstructfactory.factory.Createor;
import com.pythoncat.abstructfactory.product.ProductA;
import com.pythoncat.abstructfactory.product.ProductB;
import com.pythoncat.abstructfactory.product.impl.ProductA1;
import com.pythoncat.abstructfactory.product.impl.ProductA2;
import com.pythoncat.abstructfactory.product.impl.ProductB1;
import com.pythoncat.abstructfactory.product.impl.ProductB2;
/**
* Created by pythonCat on 16-3-26.
*/publicclassConCreateor2implementsCreateor {public ProductA fracoryA() {
returnnew ProductA2();
}
public ProductB fracoryB() { returnnew ProductB2(); }
}