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

Java设计模式之抽象工厂模式

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

Java设计模式之抽象工厂模式

 概要

提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。

产品等级结构:

产品等级结构即产品的继承结构,例如一个抽象类是电视机,子类可能有海尔电视机、三星电视机,电视机为父类,具体品牌的电视机为子类。 

产品族

在抽象工厂模式中,产品族是指由同一个工厂生产的位于不同产品等级结构张的一组产品,如海尔电视机、海尔冰箱、海尔空调,他们不拥有相同的父类,但他们属于同一个产品族  

特点

抽象工厂的出现是为了更好的解决在创建同一个产品族的对象更为便捷

 实例如下

import java.sql.Connection;

public class AbstarctFactoryMode {
    public static void main(String[] args) {

        Condition condition = null;
        MyFactory myFactory = new HaierFactory();
        condition = myFactory.createCondition();
        condition.changeDegree();
        
    }
}

interface Condition{
    void changeDegree();
}

interface Tv{
    void display();
}

interface Fridge{
    void degreeFood();
}



class HaierCondition implements Condition
{

    public void changeDegree() {
        System.out.println("this is Haier Condition");
    }
}
class HaierTv implements Tv
{

    public void display() {
        System.out.println("this is haier Tv");
    }
}

class HaierFridge implements Fridge
{

    public void degreeFood() {
        System.out.println("this is haier fridge");
    }
}


class TCLCondition implements Condition
{

    public void changeDegree() {
        System.out.println("this is TCL Condition");
    }
}
class TCLTv implements Tv
{

    public void display() {
        System.out.println("this is TCL Tv");
    }
}

class TCLFridge implements Fridge
{

    public void degreeFood() {
        System.out.println("this is TCL fridge");
    }
}


interface MyFactory
{
    Condition createCondition();
    Tv createTV();
    Fridge createFridge();
}


class HaierFactory implements MyFactory
{

    public Condition createCondition() {
        return new HaierCondition();
    }

    public Tv createTV() {
        return new HaierTv();
    }

    public Fridge createFridge() {
        return new HaierFridge();
    }
}
class TclFactory implements MyFactory
{

    public Condition createCondition() {
        return new TCLCondition();
    }

    public Tv createTV() {
        return new TCLTv();
    }

    public Fridge createFridge() {
        return new TCLFridge();
    }
}

注:

这里空调、电视和冰箱代表不同的产品等级结构,而海尔冰箱、海尔空调、海尔电视属于同一个产品族,所以需要创建海尔类的具体工厂去创建同一个族的具体对象

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

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

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