`
java从入门到放弃
  • 浏览: 45195 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

设计模式第二招-工厂方法

阅读更多

       工厂方法,简单粗暴得理解就是:有一些相似的工厂,他们有着同一个方法,并且生产同样类型的产品。再粗暴 一点就是:比如有2家工厂,都生产汽车,一家叫做宝马公司,一家叫做比亚迪股份,他们都有一个方法叫做“造车”。

   如何实现这个场景呢?

   超级无敌简单:分三步走:1、定义产品接口和产品 。 2、定义抽象的工厂类和具体工厂类。 3、调用。 

 

1、定义产品接口和产品

 

public interface Car {  //定义一个Car的接口,里边只有一个简单的run的方法
    public void run();
}

class Bmw implements Car{    //定义宝马汽车,并且实现run方法
	public void run() {
		System.out.println("我是大宝马,跑起来非常拉风!!");
	}
}

class Byd implements Car{   //定义比亚迪汽车,并且实现run方法
	public void run() {
		System.out.println("我是小比亚迪,跑起来一般般~~");
	}
}

 2、定义抽象的工厂类和具体的工厂类

abstract class CarFactory{ //定义一个抽象的工厂类,里边有一个抽象方法:造车
	public abstract Car createCar(); 
}

class BmwFactory extends CarFactory{  //宝马的工厂,实现生产宝马的方法
	public Car createCar() {
		return new Bmw();
	}
}
class BydFactory extends CarFactory{  //比亚迪的工厂,实现生产比亚迪的方法
	public Car createCar() {
		return new Byd();
	}
}

 

 3、调用来看看!!

 

 public static void main(String[] args) {
		CarFactory bydFactory=new BydFactory();
		bydFactory.createCar().run();
		CarFactory bmwFactory=new BmwFactory();
		bmwFactory.createCar().run();
	}

结果:
我是小比亚迪,跑起来一般般~~
我是大宝马,跑起来非常拉风!!

 总结:

 

工厂方法的应用场景:比如上述例子。

工厂方法的好处:让程序变得更加容易扩展!

举个例子:要在上述例子加入一个丰田公司和丰田车,那怎么办?非常easy。直接看代码!

class Toyota implements Car{  //先定义车
	public void run() {
		System.out.println("我是丰田轿车,大家不要砸我");
	}
}

class ToyotaFactory extends CarFactory{ //再定义工厂
	public Car createCar() {
		return new Toyota();
	}
}

 

我的理解就是这样的,欢迎大家留言讨论

 

 

 

0
0
分享到:
评论

相关推荐

    二十三种设计模式【PDF版】

    设计模式之 Factory(工厂方法和抽象工厂) 使用工厂模式就象使用 new 一样频繁. 设计模式之 Builder 汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder 模式就是将这...

    电子商务知识点总结.pdf

    2. 中国的B2B(Business-to-Business)电子商务模式有:水平、垂直、一体化 3. 哪些电子商务属于B2C?中国制造、阿里巴巴、京东、淘宝 4. 线下营销,线上购买,带动线下消费?O2O(Online to Offline) 5. 什么把...

    免费试用网站项目整体策划方案归纳.pdf

    - **第二年**:多平台、多行业合作,A轮融资。 - **第三年**:品牌打造,B、C轮融资。 - **第四年**:准备上市。 5. **技术实施**: - **平台开发**:开源程序二次开发,初期快速上线,后期逐步完善,考虑安全...

    数据中心微模块项目安装施工方案.docx

    数据中心微模块项目是一种高效灵活的数据中心建设模式,其特点是将数据中心的各种组件预先在工厂内集成组装成模块单元,然后运送到现场进行快速安装。深圳市XXX技术有限公司高度重视此次微模块框招项目,鉴于项目...

    2019继续教育EPC工程项目管理实务考试题带答案.pdf

    第2题提到了盒子建筑的优点。盒子建筑通常指的是模块化或预制构件组装的建筑方式,具有工厂化程度高、生产效率好、空间刚度强等特点。但题目指出整浇式不属于其优点,整浇式通常是指现场浇筑混凝土的施工方法,与...

Global site tag (gtag.js) - Google Analytics