码迷,mamicode.com
首页 > 编程语言 > 详细

Java抽象工厂模式

时间:2018-03-25 15:53:45      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:extend   abs   java   out   this   cto   cond   AC   bst   

技术分享图片

EFactory:

public abstract class EFactory {
    abstract public Television produceTelevision();
    abstract public AirConditioner produceAirConditioner();
}

Television:

public interface Television {
    void play();
}

AirConditioner:

public interface AirConditioner {
    void changeTemperature();
}

HaierFactory:

public class HaierFactory extends EFactory{

    @Override
    public Television produceTelevision() {
        return new HaierTelevision();
    }

    @Override
    public AirConditioner produceAirConditioner() {
        return new HaierAirConditioner();
    }
    
}

TCLFactory:

public class TCLFactory extends EFactory{
    @Override
    public Television produceTelevision() {
        return new TCLTelevision();
    }

    @Override
    public AirConditioner produceAirConditioner() {
        return new TCLAirConditioner();
    }
}

HaierTelevision:

public class HaierTelevision implements Television{

    @Override
    public void play() {
        System.out.println("This is HaierTelevision!");
    }
    
}

TCLTelevision:

public class TCLTelevision implements Television{

    @Override
    public void play() {
        System.out.println("This is TCLTelevison!");
    }
    
}

HaierAirConditioner:

public class HaierAirConditioner implements AirConditioner{

    @Override
    public void changeTemperature() {
        System.out.println("This is HaierAirConditioner!");
    }
    
}

TCLAirConditioner:

public class TCLAirConditioner implements AirConditioner{

    @Override
    public void changeTemperature() {
        System.out.println("This is TCLAirConditioner!");
    }
    
}

Factory(调用):

public class Factory {

    public static void main(String[] args) {
        HaierFactory hf = new HaierFactory();
        TCLFactory tclf = new TCLFactory();
        
        AirConditioner hac = hf.produceAirConditioner();
        AirConditioner tclc = tclf.produceAirConditioner();
        
        Television hat = hf.produceTelevision();
        Television tclt = tclf.produceTelevision();
        
        hac.changeTemperature();
        tclc.changeTemperature();
        
        hat.play();
        tclt.play();
    }
    
}

Result:

This is HaierAirConditioner!
This is TCLAirConditioner!
This is HaierTelevision!
This is TCLTelevison!

 

Java抽象工厂模式

标签:extend   abs   java   out   this   cto   cond   AC   bst   

原文地址:https://www.cnblogs.com/softwarecrash/p/8644500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!