工厂模式大体可以分为三种:简单工厂模式、抽象工厂模式、工厂方法模式
1.先来说下简单工厂模式:所谓简单工厂,故名思意,简单,怎么个简单,就是给一个名称创建一个对象。
简单工厂模式有几个对象:
工厂实体:本模式的核心类(用来创建东西的类,当然核心)
抽象产品:一般具有共同特性的父类(比如:汽车的接口类)
具体的产品:继承抽象产品的父类(比如:BMW继承汽车接口类,奔驰继承汽车接口类)
简单工厂怎么使用呢?
抽象产品:
public interface Car{
public void drive();
}
具体的产品实现:
BWM继承父类
public class Bmw implements Car{
public void drive() {
System.out.println("Driving Bmw ");
}
}
奔驰
public class Benz implements Car{
public void drive() {
System.out.println("Driving Benz ");
}
}
工厂类的实现:
public class Factory{
//工厂方法.注意 返回类型为抽象产品角色
public static Car driverCar(String s)throws Exception {
//判断逻辑,返回具体的产品角色给Client
if(s.equalsIgnoreCase("Benz"))
return new Benz();
else if(s.equalsIgnoreCase("Bmw"))
return new Bmw();}}
一个土豪客户说要生产5W辆BWM,
Car bwmCar = Factory.driverCar("Bmw");
这个就是简单工厂的大体逻辑。
下面接着我们说工厂方法:
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。
类图:
工厂方法模式代码
-
interfaceIProduct{
-
publicvoidproductMethod();
-
}
-
-
classProductimplementsIProduct{
-
publicvoidproductMethod(){
-
System.out.println("产品");
-
}
-
}
-
-
interfaceIFactory{
-
publicIProductcreateProduct();
-
}
-
-
classFactoryimplementsIFactory{
-
publicIProductcreateProduct(){
-
returnnewProduct();
-
}
-
}
-
-
publicclassClient{
-
publicstaticvoidmain(String[]args){
-
IFactoryfactory=newFactory();
-
IProductprodect=factory.createProduct();
-
prodect.productMethod();
-
}
-
}
典型应用就是组装汽车,实例化各个组件类,然后拼装在一起就形成产品了
-
interfaceIFactory{
-
publicICarcreateCar();
-
}
-
classFactoryimplementsIFactory{
-
publicICarcreateCar(){
-
Engineengine=newEngine();
-
Underpanunderpan=newUnderpan();
-
Wheelwheel=newWheel();
-
ICarcar=newCar(underpan,wheel,engine);
-
returncar;
-
}
-
}
-
publicclassClient{
-
publicstaticvoidmain(String[]args){
-
IFactoryfactory=newFactory();
-
ICarcar=factory.createCar();
-
car.show();
-
}
-
}
放大
分享到:
相关推荐
设计模式 工厂模式 VC++ C++ 源程序
iOS 设计模式 工厂模式
JAVA 设计模式: 工厂模式 代理模式 迭代模式 责任链模式 源码
JAVA设计模式工厂模式之简单工厂[定义].pdf
设计模式(工厂模式):通过工厂模式生产不同的汽车,如宝马、奇瑞QQ
单例模式和工厂模式结合应用,实现了产品的生产,适合用做课程设计,包含详细文档和代码。Java语言。喜欢的可以下载来看看那
设计模式工厂方法模式PPT学习教案.pptx
工厂模式pdf 附源码 适合初学者学习的很好的资料 分享下大家学习
专题资料(2021-2022年)java常用设计模式工厂模式的实现.doc
将《Head First 设计模式》(中文版)按章节进行了分割,每章一个文件,方便大家下载。
抽象工厂设计模式抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
c#设计模式 工厂模式 抽象工厂(Abstract Factory)模式 引进抽象工厂模式
自己写的设计模式 工厂模式的Java源码,如果大家喜欢的话,就下载看看
设计模式学习笔记(一)--简单工厂模式源码和类图
软件体系结构与设计模式第十二章工厂方法模式.pptx
设计模式之工厂模式Java实现和类设计图,包括简单工厂模式、工厂方法模式和抽象工厂模式
简单工厂模式在android中的应用。简单工厂模式相信大家都懂了。但是我觉得理论知识缺乏应用永远显得苍白无力。于是贴出了这一系列代码。都是关于设计模式在android中的简单应用。
IOS 设计模式抽象工厂实例Demo IOS 设计 模式 抽象 工厂
设计模式---抽象工厂模式(Abstract Factory)-UML图 (StarUML)