博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
抽象工厂方法
阅读量:6161 次
发布时间:2019-06-21

本文共 2038 字,大约阅读时间需要 6 分钟。

/** * 抽象工厂方法:抽象工厂方法是在普通工厂方法上进行扩展的,普通工厂每个工厂类只会生产一种产品,例如富士康只生产iphone,而抽象工厂就是 * 一个工厂可以生产多种产品,例如,富士康可以生产苹果手机,也可以生产苹果耳机 * 该模式特点:1.有多种产品的接口以及对应的实现类(如手机接口,实现类为苹果手机和小米手机,耳机接口(实现类为苹果耳机和小米手机) *          2.有一个工厂接口和对应的实现类,如手机生产工厂接口,实现类纬创工厂,富士康工厂 *          2.每个工厂类,具有同时生产多种产品的方法,例如富士康工厂,生产苹果手机和苹果耳机 *///创建手机接口public interface Phone {    void call();}//苹果手机对象public class Iphone implements Phone {    @Override    public void call() {        System.out.println("使用苹果手机打电话");    }}//小米手机public class MIPhone implements Phone {    @Override    public void call() {        System.out.println("使用小米手机打电话");    }}//耳机接口public interface Earphone {    void listenMusic();}//苹果耳机public class AppleEarphone implements Earphone {    @Override    public void listenMusic() {        System.out.println("用苹果耳机听音乐");    }}//小米耳机public class MiEarPhone implements Earphone {    @Override    public void listenMusic() {        System.out.println("使用小米耳机听音乐");    }}//工厂接口public interface PhoneFactory {    //生产手机    Phone createPhone();    //生产耳机    Earphone createEarphone();}//生产苹果手机的工厂,如富士康public class IPhoneFactory implements PhoneFactory {    //生产苹果手机    @Override    public Phone createPhone() {        return new Iphone();    }    //生产苹果耳机    @Override    public Earphone createEarphone() {        return new AppleEarphone();    }}//生产小米手机的工厂如纬创public class MiPhoneFactory implements PhoneFactory {    //生产小米手机    @Override    public Phone createPhone() {        return new MIPhone();    }    //生产小米耳机    @Override    public Earphone createEarphone() {        return new MiEarPhone();    }}class test2{    public static void main(String[] args) {        //创建苹果手机和耳机        PhoneFactory iPhoneFactory = new IPhoneFactory();        iPhoneFactory.createPhone().call();        iPhoneFactory.createEarphone().listenMusic();        //创建小米手机和耳机        PhoneFactory miPhoneFactory = new MiPhoneFactory();        miPhoneFactory.createPhone().call();        miPhoneFactory.createEarphone().listenMusic();    }}

 

转载于:https://www.cnblogs.com/yangxiaohui227/p/10905355.html

你可能感兴趣的文章
J2se学习笔记一
查看>>
DNS视图及日志系统
查看>>
老李分享:Android性能优化之内存泄漏 3
查看>>
mysql命令
查看>>
来自极客标签10款最新设计素材-系列七
查看>>
极客技术专题【009期】:web技术开发小技巧
查看>>
PHP 简单计算器代码实现
查看>>
正则表达式的知识普及
查看>>
docker使用笔记
查看>>
华为eNSP模拟器上实现FTP服务
查看>>
【全球AI人才排行榜】美国第一,中国仅排名第7
查看>>
微信小程序输入框input
查看>>
MySql字符串函数使用技巧
查看>>
Doc2Vec,Word2Vec文本相似度 初体验。
查看>>
系统ghost后变成一个盘了别的分区的文件怎么找回
查看>>
Win7+Ubuntu11
查看>>
请问华为三层交换机里面的那个从IP是个什么意思? -
查看>>
kFeedback开源啦
查看>>
大数据传输,文件传输的专业解决方案!
查看>>
阿里云专家穆轩的《杭州九年程序员之“修炼”手册》
查看>>