java 设计模式 路由器_java设计模式2————工厂模式

本文详细介绍了Java中的工厂模式,包括简单工厂模式、工厂方法模式和抽象工厂模式。简单工厂模式通过静态方法创建对象,但增加新类型时需修改工厂代码。工厂方法模式通过接口实现工厂的抽象类,每个具体产品对应一个具体工厂,更符合开闭原则。抽象工厂模式则用于创建相关或相互依赖的对象族,提供了一组创建对象的接口,无需指定具体类。三种模式的核心都是通过工厂方法替代`new`操作,降低耦合度。
摘要由CSDN通过智能技术生成

java设计模式2————工厂模式

1、工厂模式介绍:

1.1、实现了创建者与调用者的分离

1.2、详细分类:

简单工厂模式

工厂方法模式

抽象工厂模式

1.3、所遵循的OOP原则:

开闭原则:对扩展开放,对修改关闭

依赖倒转原则:面向接口编程

迪米特法则:只与你直接的朋友进行通信,而避免与陌生人进行通信。

1.4、核心本质

实例化对象,不使用new,用工厂方法代替

将调用者与我们的实现类解耦

1.5、三种模式

eacd9f24be13383d5d68d037a0e6cb1f.png

2、简单工厂模式

2.1、先建立汽车抽象类

package com.xgp.company.第二种_工厂模式.简单工厂模式;

public interface Car {

void name();

}

2.2、制造车

制造“五凌”车

package com.xgp.company.第二种_工厂模式.简单工厂模式;

public class WuLing implements Car {

@Override

public void name() {

System.out.println("五凌宏观");

}

}

制造“特斯拉”车

package com.xgp.company.第二种_工厂模式.简单工厂模式;

public class Tesla implements Car {

@Override

public void name() {

System.out.println("特斯拉");

}

}

2.3、创建汽车工厂(两种方式工厂制造对像)

package com.xgp.company.第二种_工厂模式.简单工厂模式;

/**

* 简单工厂模式,又成为静态工厂模式

* 弊端:增加一个新产品时,如果你不修改代码,做不到

*/

/**汽车工厂

*/

public class CarFactory {

public static Car getCar(String car) {

if("五凌".equals(car)) return new WuLing();

if("特斯拉".equals(car)) return new Tesla();

return null;

}

/**

第二种方式

@return

*/

public static Car getWuLing() {

return new WuLing();

}

public static Car getTesla() {

return new Tesla();

}

}

2.4、建立买车类(传统方法创建对象被注释了和通过工厂创建对象)

package com.xgp.company.第二种_工厂模式.简单工厂模式;

/**买车

/

public class Consumer {

/ //*

传统的方式

@param args

//

public static void main(String[] args) {

//弊端:需要了解接口和所有的实现类

Car car1 = new WuLing();

Car car2 = new Tesla();

car1.name();

car2.name();

}*/

/**简单工厂模式

@param args

*/

public static void main(String[] args) {

Car car1 = CarFactory.getCar("五凌");

Car car2 = CarFactory.getCar("特斯拉");

car1.name();

car2.name();

}</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值