java 设计模式之工厂方法模式
来源:互联网 发布:用matlab求矩阵方程 编辑:程序博客网 时间:2024/06/05 05:05
工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。
工厂模式可以分为三类:
1)简单工厂模式(Simple Factory) ,简单的创建一个对象工厂,然后创建对象,把创建对象隐藏。
2)工厂方法模式(Factory Method) ,一个工厂创建一个产品,可以有多个工厂
3)抽象工厂模式(Abstract Factory) ,一个工厂创建多个产品,可以有多个工厂
工厂模式的组成模式:
抽象产品 类,具体产品类,抽象工厂类,具体工厂类。
package com.huawei.factory;//定义手机抽象类 public interface Phone {}//定义手机膜抽象类interface PhoneM{}class PhoneMImple implements PhoneM{PhoneMImple(){System.out.println("已生产配套手机膜");}}//小米手机class MiPhone implements Phone{MiPhone(){System.out.println("生产一台小米手机");}}class HWPhone implements Phone{HWPhone(){System.out.println("生产一台华为手机");}}class IPhone implements Phone{IPhone(){System.out.println("生产一台苹果手机");}}interface PhoneFactory{Phone createPhone();//定义生产手机PhoneM createPhoneM();//定义生产手机膜}/** * 生产小米手机及其手机膜 * @author Administrator * */class IMPhoneFactoryImpl implements PhoneFactory{@Overridepublic Phone createPhone() {return new MiPhone();}@Overridepublic PhoneM createPhoneM() {// TODO Auto-generated method stubreturn new PhoneMImple();}}/** * 生产华为手机及其手机膜 * @author Administrator * */class HWPhoneFactoryImpl implements PhoneFactory{@Overridepublic Phone createPhone() {return new HWPhone();}@Overridepublic PhoneM createPhoneM() {// TODO Auto-generated method stubreturn new PhoneMImple();}}
package com.huawei.factory;public class Test1 {public static void main(String[] args) {//生产小米手机PhoneFactory mip = new IMPhoneFactoryImpl();mip.createPhone();mip.createPhoneM();//生产华为手机PhoneFactory hwp = new HWPhoneFactoryImpl();hwp.createPhone();hwp.createPhoneM();}}
运行结果:
生产一台小米手机
已生产配套手机膜
生产一台华为手机
已生产配套手机膜
阅读全文
0 0
- JAVA设计模式之工厂模式之工厂方法模式
- Java设计模式之工厂方法模式
- Java设计模式之工厂方法模式
- java设计模式之工厂方法模式
- Java设计模式之工厂方法模式
- Java设计模式之工厂方法模式
- java设计模式之工厂方法模式
- Java设计模式之工厂方法模式
- Java设计模式之工厂方法模式
- Java设计模式之工厂方法模式
- 【Java设计模式】之工厂方法模式
- Java设计模式之工厂方法模式
- java设计模式之工厂方法模式
- Java设计模式之工厂方法模式
- java设计模式之"工厂方法模式"
- Java设计模式之工厂方法模式
- Java设计模式之工厂方法模式
- java之设计模式---工厂方法模式
- 阿里菜鸟java岗面试
- Java多线程之内存可见性
- 剑指offer——面试中的各项能力
- 安卓——套接字Socket通信(未完)
- CentOS6.7安装独立版Spark
- java 设计模式之工厂方法模式
- 1054. 求平均值 (20)
- mystring类的实现
- CEF:MFC 对话框 Demo(VS2013)
- 关于CSS 伪类及伪元素
- 【Docker安装】- Ubuntu14.04中安装最新版的Docker
- 斐波拉契数列
- 错误Error:Could not get unknown property 'GROUP' for object of type org.gradle.api.publication.maven.i
- HDOJ 2602 Bone Collector(0-1背包)