zoukankan      html  css  js  c++  java
  • 工厂设计模式

    工厂设计模式

    OOP基于接口的设计,高内聚,低耦合

    DrinkFactory用来存储不同的对象,但是,这样会造成返回值存在多个类型,解决的方法是运用向上转型,定义接口类型作为父类,具体的实现对象作为接口的实现子类。

    注意工厂中的getInstance方法声明为静态static方法,此方法用来获取具体的对象。

    进一步实现

    进一步完善

    完善代码,去除构造方法,避免直接new调用

    最终版本

    package oop;
    /**
     * 工厂模式
     * 基于接口的设计模式
     */
    interface Drink{public void drink();}
    class Milk implements Drink{
    	public void drink(){System.out.println("喝牛奶");}
    }
    class Bear implements Drink{
    	public void drink(){System.out.println("喝啤酒");}
    }
    class DrinkFactory{
    	private DrinkFactory(){};//完善
    	public static Drink getInstance(String str){//工厂用来存储不同的对象
    		if (str.equalsIgnoreCase("m")) {
    			return new Milk();
    		}else if (str.equalsIgnoreCase("b")) {
    			return new Bear();
    		}
    		return null;
    	}
    }
    public class Gongchang {
    	public static void main(String[] args) {
    		//注意声明为静态static方法
    		Drink d1=DrinkFactory.getInstance("m");
    		d1.drink();
    		Drink d2=DrinkFactory.getInstance("b");
    		d2.drink();
    	}
    }
    

      

  • 相关阅读:
    P1141零一迷宫
    P1219八皇后
    P1233木棍加工
    三 Struts2 添加返回数据
    二 Struts2 接收数据
    一 Struts2 开发流程
    12-tinyMCE文本编辑器+图片上传预览+页面倒计时自动跳转
    11-page分页原理
    10-ajax技术简介
    9-文件上传和下载
  • 原文地址:https://www.cnblogs.com/dldrjyy13102/p/8183662.html
Copyright © 2011-2022 走看看