栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

设计模式之工厂模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设计模式之工厂模式

菜鸟教程之工厂模式
如下:SteveCode之工厂模式

类图:

上代码: ChinaPizza
public class ChinaPizza extends Pizza{
    public ChinaPizza() {
        name = "中国披萨";
        size = 12;
    }
    
    @Override
    void box() {
        System.out.println("非常之精致的盒子");
    }
}
NyChina
public class NyChina extends Pizza {
    
    public NyChina() {
        name = "牛约披萨";
        size = 8;
    }
    
    @Override
    void cut() {
        System.out.println("切6片");
    }
}

Pizza
public class Pizza {
    public String name;
    
    public Integer size;
    
    
    void box() {
        System.out.println("普通包装盒子");
    }
    
    void cut() {
        System.out.println("默认切8片");
    }
    
    public String getName() {
        return this.name;
    }
}

PizzaAbstract
public abstract class PizzaAbstract {
    public Pizza createPizza(String type) {
        Pizza pizza = typePizza(type);
        pizza.box();
        pizza.cut();
        return pizza;
    }
    
    
    abstract Pizza typePizza(String type);
    
}

TypePizzaFactory
public class TypePizzaFactory extends PizzaAbstract{
    @Override
    Pizza typePizza(String type) {
        if ("china".equals(type)) {
            return new ChinaPizza();
        }
        if ("ny".equals(type)) {
            return new  NyChina();
        }
        //不友好测试用
        return null;
    }
}

测试类:Test
public class Test {
    public static void main(String[] args) {
       TypePizzaFactory typePizza = new TypePizzaFactory();
        Pizza ny = typePizza.createPizza("ny");
        System.out.println("披萨名称="+ny.getName());
        Pizza china = typePizza.createPizza("china");
        System.out.println("披萨名称="+china.getName());
    }
}
效果图


工厂模式还需要优化
为年薪百万二奋斗终身!给我冲

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709054.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号