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

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

工厂角色:

package designpattern.creation.factorymethod;public class FactoryA {    public IProduct getProduct() {        return new ProductA();    }    }package designpattern.creation.factorymethod;public class FactoryB {    public IProduct getProduct() {        return new ProductB();    }    }

产品角色:

package designpattern.creation.factorymethod;public interface IProduct {    void use();}package designpattern.creation.factorymethod;public class ProductA implements IProduct {    public void use() {        // TODO Auto-generated method stub        System.out.println("ProductA.use()");    }}package designpattern.creation.factorymethod;public class ProductB implements IProduct {    public void use() {        // TODO Auto-generated method stub        System.out.println("ProductB.use()");    }}

客户端:

package designpattern.creation.factorymethod;/* *  * 工厂方法用于处理更加复杂的情况。 * —— 当产品出现不用种类的时候。 * 为什么 称这种模式为工厂方法? ? *  * 要素: *  * 1 只有多个工厂 * 2 工厂有一个方法 ,每个工厂只负责生产一个产品 * 3 客户端通过调用不同工厂的相同方法获取对应的不同的产品 *  * 缺点: * 每增加一个产品则需要增加2个类: 一个工厂、一个具体产品—— 这样导致类的膨胀 *  *  * 使用场景? *  */public class Client {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        IProduct product = new FactoryA().getProduct();        product.use();        IProduct product2 = new FactoryB().getProduct();        product2.use();    }}

 

转载地址:http://syykl.baihongyu.com/

你可能感兴趣的文章
java中Scanner的nextLine()和next()的区别
查看>>
Dig
查看>>
21:二维数组右上左下遍历
查看>>
android camera(一):camera模组CMM介绍【转】
查看>>
BZOJ 2821: 作诗(Poetize) [分块]
查看>>
TCP协议三次握手过程分析
查看>>
set排序(个人模版)
查看>>
Codeforces Round #404 (Div. 2) D. Anton and School - 2 数学
查看>>
windows进程中的几个杂项-hpguard 进程终止
查看>>
Window 7 + Ubuntu 双系统安装
查看>>
instance 怎么获得自己的 Metadata - 每天5分钟玩转 OpenStack(169)
查看>>
以AVL树为例理解二叉树的旋转(Rotate)操作
查看>>
Maven可以提交到官方公共仓库maven.org
查看>>
屏幕适配经验
查看>>
学霸也要会看书
查看>>
解读tensorflow之rnn 的示例 ptb_word_lm.py
查看>>
Linux内核--并发【转】
查看>>
关于对FLASH开发,starling、starling feathers、starling MVC框架的理解
查看>>
【Python】京东商品价格监控
查看>>
Codeforces 10A-Power Consumption Calculation(模拟)
查看>>