引自:https://blog.csdn.net/weixin_35985385/article/details/81430545
- 简单工厂模式(静态工厂):一个工厂可以生产多种产品,一个工厂类,多个产品类。
public interface IceCream{
public void taste();
}
public class AppleIceCream implements IceCream{
public void taste(){
System.out.println("这是苹果口味冰淇淋");
}
}
public class BananaIceCream implements IceCream{
public void taste(){
System.out.println("这是苹果口味冰淇淋");
}
}
public class OrangeIceCream implements IceCream{
public void taste(){
System.out.println("这是橘子口味冰淇淋");
}
}
public class IceCreamFactory{
public static IceCream createIceCream(String type) {
IceCream iceCream = null;
switch(type){
case "Apple" iceCream = new AppleIceCream();
case "Banana" iceCream = new BananaIceCream();
case "Orange" iceCream = new OrangeIceCream();
}
return iceCream;
}
}
public static void main(String[] args){
IceCream appleIceCream = IceCreamFactory.creamIceCream("Apple");
appleIceCream.taste();IceCream bananaIceCream = IceCreamFactory.creamIceCream("Banana");
bananaIceCream.taste();IceCream orangeIceCream = IceCreamFactory.creamIceCream("Orange");
orangeIceCream.taste();}
- 工厂方法模式
public interface IceCream{
public void taste();
}
AppleIceCream、BananaIceCream、OrangeIceCream
public interfaceIceCreamFactory{
public void createIceCream();
}
public class AppleIceCreamFactory implements IceCreamFactory {
public IceCream createIceCream() {
return new AppleIceCream();
}
}public class BananaIceCreamFactory implements IceCreamFactory {
public IceCream createIceCream() {
return new BananaIceCream();
}
}public class OrangeIceCreamFactory implements IceCreamFactory{
public IceCream createIceCream() {
return new OrangeIceCream();
}
}
// 客户端代码
public class Client {/**
* @param args
*/
public static void main(String[] args) {//生产苹果味冰激凌
IceCreamFactory appleFactory = new AppleIceCreamFactory();
IceCream appleIceCream = appleFactory.createIceCream();
appleIceCream.taste();//生产香蕉口味冰激凌
IceCreamFactory bananaFactory = new BananaIceCreamFactory();
IceCream bananaIceCream = bananaFactory.createIceCream();
bananaIceCream.taste();//生产橘子口味冰激凌
IceCream orangeIceCream = new OrangeIceCreamFactory().createIceCream();
orangeIceCream.taste();
}
}
- 抽象工厂模式
public interface BigIceCream{
public void taste();
}
public interface SmallIceCream{
public void taste();
}
public class BigAppleIceCream implements BigIceCream {
public void taste() {
System.out.println("这是苹果味冰激凌(大份)");
}
}public class SmallAppleIceCream implements SmallIceCream {
public void taste() {
System.out.println("这是苹果味冰激凌(小份)");
}
}//后边还有四个类BigBananaIceCream、SmallBananaIceCream、BigOrangeIceCream、SmallOrangeIceCream
---------------------
作者:LSZJXin
来源:CSDN
原文:https://blog.csdn.net/weixin_35985385/article/details/81430545
版权声明:本文为博主原创文章,转载请附上博文链接!
public interface IceCreamFactory {
public BigIceCream createBigIceCream();
public SmallIceCream createSmallIceCream();
}
public class AppleIceCreamFactory implements IceCreamFactory {
public BigIceCream createBigIceCream() {
return new BigAppleIceCream();
}public SmallIceCream createSmallIceCream() {
return new SmallAppleIceCream();
}
}public class BananaIceCreamFactory implements IceCreamFactory {
public BigIceCream createBigIceCream() {
return new BigBananaIceCream();
}public SmallIceCream createSmallIceCream() {
return new SmallBananaIceCream();
}
}public class OrangeIceCreamFactory implements IceCreamFactory {
public BigIceCream createBigIceCream() {
return new BigOrangeIceCream();
}public SmallIceCream createSmallIceCream() {
return new SmallOrangeIceCream();
}
}
---------------------
作者:LSZJXin
来源:CSDN
原文:https://blog.csdn.net/weixin_35985385/article/details/81430545
版权声明:本文为博主原创文章,转载请附上博文链接!
public class Client {
public static void main(String[] args) {
//生产苹果味冰激凌
IceCreamFactory appleIceCreamFactory = new AppleIceCreamFactory();
BigIceCream appleBigIceCream = appleIceCreamFactory.createBigIceCream();
SmallIceCream appleSmallIceCream = appleIceCreamFactory.createSmallIceCream();
appleBigIceCream.taste();
appleSmallIceCream.taste();//生产香蕉味冰激凌
IceCreamFactory bananaIceCreamFactory = new BananaIceCreamFactory();
BigIceCream bananaBigIceCream = bananaIceCreamFactory.createBigIceCream();
SmallIceCream bananaSmallIceCream = bananaIceCreamFactory.createSmallIceCream();
bananaBigIceCream.taste();
bananaSmallIceCream.taste();//生产橘子味冰激凌
IceCreamFactory orangeIceCreamFactory = new OrangeIceCreamFactory();
BigIceCream orangeBigIceCream = orangeIceCreamFactory.createBigIceCream();
SmallIceCream orangeSmallIceCream = orangeIceCreamFactory.createSmallIceCream();
orangeBigIceCream.taste();
orangeSmallIceCream.taste();
}
}
---------------------
作者:LSZJXin
来源:CSDN
原文:https://blog.csdn.net/weixin_35985385/article/details/81430545
版权声明:本文为博主原创文章,转载请附上博文链接!