博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java设计模式-工厂方法模式
阅读量:6815 次
发布时间:2019-06-26

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

模式描述

工厂方法模式提供一个用于创建产品的接口,由实现类决定实现哪些产品。工厂方法模式使一个类的实例化延迟到子类,并且只适用于一个产品的等级结构。

优点

可以一定程度上解耦,消费者和产品实现类隔离开,只依赖产品接口(抽象产品),产品实现类如何改动与消费者完全无关。

例子

还是以之前简单工厂的手机为案例:

/** * 产品接口 */public interface Phone {    public Phone getPhone();}package factory;/** * 苹果 */public class AppleFactory implements Phone {    @Override    public Phone getPhone() {        return new AppleFactory();    }    public String getName()    {        return "apple";    }}package factory;/** * vivo */public class VivoFactory implements Phone {    @Override    public Phone getPhone() {        return new VivoFactory();    }}package factory;/** * 消费者 */public class Coustomer {    public static void main(String[] args) {        Phone phone = new AppleFactory();        System.out.println(phone.getPhone());    }}

和简单工厂区别

1:工厂模式方法(factory method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到子类。 

2:工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。你想要加功能,本来是要改工厂类的,而现在是修改客户端。 

转载于:https://www.cnblogs.com/talkingcat/p/10391071.html

你可能感兴趣的文章
记录一次sql注入绕过
查看>>
Android SDK Android NDK Android Studio 官方下载地址
查看>>
06、豆瓣爬虫
查看>>
Charles修改HTTP返回技巧(断点法)
查看>>
高度自适应
查看>>
Asp.Net实现文件下载的几种方式
查看>>
android textView 添加超链接(两种实现方式)
查看>>
Shiro学习总结(1)——Apache Shiro简介
查看>>
Web应用界面设计规范
查看>>
戴尔服务器状态信息和简单处理
查看>>
字符串的回文子序列个数(以后再看)
查看>>
jbpm4.4 源码深度解析 (一)
查看>>
面试总结之 String
查看>>
映像文件工具srec
查看>>
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 120: illegal multibyte sequence
查看>>
Centos kvm桥接
查看>>
单机使用tungsten 同步mysql数据到mongodb
查看>>
即将温习html标签,再系统的学习一下
查看>>
边缘检测之Sobel检测算子
查看>>
ssis (3) web
查看>>