`
java从入门到放弃
  • 浏览: 45090 次
  • 性别: 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
分享到:
评论

相关推荐

    c++设计模式-工厂方法模式

    在标题“c++设计模式-工厂方法模式”中,我们关注的是如何在C++中实现工厂方法这一设计模式。工厂方法模式的核心思想是定义一个创建对象的接口,但让子类决定实例化哪一个类。这样,工厂方法可以使类的实例化过程...

    设计模式UML图--工厂模式

    在给定的“设计模式UML图--工厂模式”中,我们关注的是三种不同的工厂模式:简单工厂、工厂方法和抽象工厂。这些模式都是创建型设计模式,它们的核心目标是为对象的创建提供一种抽象,使得客户端代码不必关心具体的...

    NET设计模式--工厂方法例子源码

    NET设计模式--工厂方法例子源码

    设计模式-工厂方法模式

    比如,如何在具体的编程语言中实现工厂接口,如何设计具体工厂类,以及如何编写测试代码来验证工厂方法模式的正确性。 测试代码(如`Test1`)可以包含对工厂方法模式的多种场景模拟,如测试创建不同产品的正确性,...

    设计模式之-工厂方法-FactoryMethod

    《设计模式之——工厂方法(Factory Method)》 在软件工程中,设计模式是一种解决常见问题的可重用解决方案,它被广泛应用于构建高质量、可维护的代码。工厂方法是面向对象设计模式的一种,属于创建型模式。这个...

    设计模式----工厂模式

    工厂模式是其中最基础也是最常用的一种设计模式,主要解决对象创建的问题,使得代码在面对多种产品类型时更具灵活性。 工厂模式的核心思想是将对象的创建过程封装起来,通过一个专门的工厂类来生产对象,而不是让...

    我讲设计模式--工厂方法

    在软件开发领域,设计模式是一种经过...总的来说,工厂方法设计模式是软件开发中的一个重要工具,通过将对象的创建过程抽象化,可以提高代码的可扩展性和可维护性。理解和掌握这一模式对于提升软件设计能力大有裨益。

    java设计模式----抽象工厂模式

    java设计模式----抽象工厂模式,简单工厂模式代码 代码内部

    java设计模式-工厂模式

    2. **工厂方法模式**: - 工厂方法模式将对象的创建过程下放给子类来决定。每个子类对应一个产品类型,负责创建该类型的产品。这样,当需要增加新产品时,只需要添加新的子类,而无需改动原有代码,符合开闭原则。 ...

    设计模式-工厂方法模式(C#)

    设计一个程序来读取多种不同存储格式的图片,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF格式图片读取器(GifReader)用于读取...请使用工厂方法模式实现该程序的设计,并使用UML画出该模式的类图。

    JAVA-设计模式-创建型模式-工厂模式

    JAVA-设计模式-创建型模式-工厂模式

    工厂车间-工厂车间系统-工厂车间系统源码-工厂车间管理系统-基于Web的工厂车间系统设计与实现-工厂车间系统设计与实现-java

    工厂车间-工厂车间系统-工厂车间系统源码-工厂车间管理系统-工厂车间管理系统java代码-工厂车间系统设计与实现-基于springboot的工厂车间系统-基于Web的工厂车间系统设计与实现-工厂车间网站-工厂车间网站代码-工厂...

    《Java设计模式》课后答案-刘伟.rar

    创建型设计模式如单例(Singleton)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)、建造者(Builder)和原型(Prototype),它们主要关注对象的创建过程,使得代码更加灵活且易于扩展。 结构型设计...

    简单工厂-工厂方法-抽象工厂 对比总结

    2. **工厂方法模式** 提供了更好的扩展性,遵循开闭原则,适合产品族中对象类别可能增加的情况。 3. **抽象工厂模式** 关注对象族的创建,适用于需要在不同环境中创建一系列相关对象的情况,但结构较为复杂,增加新...

    新版设计模式手册 - C#设计模式(第二版)

    《新版设计模式手册 - C#设计模式(第二版)》是一部深入探讨C#编程中设计模式的权威指南,尤其适合已经有一定C#基础并希望提升软件设计能力的开发者阅读。设计模式是解决软件开发中常见问题的经验总结,是软件工程的...

    JAVA设计模式例程-工厂模式-1

    这个名为"JAVA设计模式例程-工厂模式-1"的压缩包文件提供了一个关于工厂模式的实例,可以帮助学习者更好地理解和应用这个模式。 工厂模式的核心思想是提供一个创建对象的接口,但让实现延迟到子类去做,这样做的...

    设计模式之工厂方法模式

    工厂方法模式是设计模式中的创建型模式之一,它在软件工程中扮演着非常重要的角色,尤其是在C#这样的面向对象编程语言中。工厂方法模式提供了一种封装对象创建过程的方法,使得具体的创建过程延迟到子类中进行,从而...

    设计模式----简单工厂模式

    简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,使得代码在创建对象时更加灵活,同时也隐藏了对象的创建细节,提高了代码的可读性和可维护性。在Java编程中,简单工厂模式...

    优秀的设计模式示例-工厂模式

    工厂模式是设计模式中的一种,属于创建型模式,它提供了一种封装对象创建过程的方法,使得创建对象的过程与使用对象的代码分离,从而提高了代码的灵活性和可扩展性。 工厂模式的核心思想是通过一个工厂类来负责创建...

Global site tag (gtag.js) - Google Analytics