博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单工厂模式【java版】
阅读量:6403 次
发布时间:2019-06-23

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

一、简单工厂模式的组成部分

     a)抽象产品: 在接口中指定了每种具体产品需要实现的方法

        具体产品: 实现接口

     b)工厂类:根据具体的参数,创建和返回相应的具体产品,由主程序直接调用

 

二、代码实现

抽象产品:Car

package com.simpleFactory; public interface Car {
public void run(); }

具体产品1:BENZ

package com.simpleFactory; public class BENZ implements Car {
public void run() {
// TODO Auto-generated method stub System.out.println("BENZ is running!"); } }

具体产品2:BMW

package com.simpleFactory; public class BMW implements Car {
public void run() {
// TODO Auto-generated method stub System.out.println("BMW is running!"); } }

工厂类:Factory

package com.simpleFactory; public class Factory {
/** * 静态工厂方法 * */ public static Car createCar(String carName){ Car car = null; if(carName.equalsIgnoreCase("BMW")){ car = new BMW(); }else if(carName.equalsIgnoreCase("BENZ")){ car = new BENZ(); } return car; } }

主函数:

package com.simpleFactory; public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub System.out.println("开始测试简单工厂模式!"); Car car_A=Factory.createCar("BENZ"); car_A.run(); Car car_B=Factory.createCar("BMW"); car_B.run(); }

运行结果:

 说明:虽然简单工厂模式使用广泛,但有个十分明显的特点:每增加一个新类, 就必须

   修改“工厂类中生产产品的静态方法”,如此并不符合“开闭原则”(对扩展开放,对改变关闭)

  

    

转载于:https://www.cnblogs.com/edisonfeng/archive/2011/10/19/2218362.html

你可能感兴趣的文章
Windows下oracle打补丁步骤
查看>>
Python教程(一)Python简介
查看>>
asp.net forms认证
查看>>
一帧图像的两种显示器建模方式
查看>>
Hadoop 公平调度器算法调度解析
查看>>
Linux Foundation(笔记)
查看>>
Java学习第二十五天
查看>>
vim配置
查看>>
ubuntu 把软件源修改为国内源和更新
查看>>
随机产生四则运算,导入导出文件
查看>>
位运算符
查看>>
winform自定义控件
查看>>
C#编码好习惯
查看>>
避其锋芒,侧翼出击。——司马亮创业回忆录(一)
查看>>
scope
查看>>
删除链表中储存给定值的节点
查看>>
vCPU估算的几个基本概念
查看>>
DoraCMS 源码知识点备注
查看>>
一起谈.NET技术,晚绑定场景下对象属性赋值和取值可以不需要PropertyInfo
查看>>
一起谈.NET技术,.Net Framework源代码中的模式之Prototype(原型模式)
查看>>