zoukankan      html  css  js  c++  java
  • Java抽象工厂模式

    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!

  • 相关阅读:
    ASP.NET MVC 入门9、Action Filter 与 内置的Filter实现(介绍) 【转】
    一个建议,看看大家的意见。
    发现不错的文章,推!
    有个小问题,大家一起研究。
    逼不得已,这个我确实不会,昨办?
    MSN Message6.2 的小BUG
    在IE7浏览器中切换成以资源管理器方式
    手机罗盘(指南针)校准方法
    G13/ Wildfire S/A510e link2SD教程,干净清洁的安装程序到内存卡
    HTC G13电池怎么鉴别真伪
  • 原文地址:https://www.cnblogs.com/softwarecrash/p/8644500.html
Copyright © 2011-2022 走看看