设计模式(三)工厂模式
作用:
实现了创建者和调用者的分离
详细分类:
简单工厂模式(ioc)
工厂方法模式
抽象工厂模式
oop七大原则:
开闭原则:一个软件的实体应当对扩展开放,对修改关闭。
依赖倒转原则:要针对接口编程,不要针对实现编程。
迪米特法则:只与你直接的朋友通信,而避免和陌生人通信(要保持系统的清晰度)
工厂模式:
- 核心本质:
实例化对象不适用new,用工厂方法代替。
将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。
三种模式:
- 简单工厂模式:
用来生产同一等级结构中的任意产品(对于增加新的产品,需要球盖已有代码) - 工厂方法模式:
用来生产同一等级结构中的固定产品(支持增加任意产品) - 抽象工厂模式
围绕一个超级工厂创建其他工厂,该超级工厂又称为其他工厂的工厂。
简单工厂
一个车的模型(接口)
public interface Car {
void name();
}
一个造车大厂什么车都造(各个具体的实现类)
public class CarFactory {
public static Car getCar(String car){
if(car.equals("五菱")){
return new WuLing();
}else if(car.equals("特斯拉")){
return new Tesla();
}else {
return null;
}
}
//方法二
public static Car getWuling(){
return new WuLing();
}
public static Car getTesla(){
return new Tesla();
}
}
3.具体的各个车的怎么实现
package com.my.factory.simple;
public class Tesla implements Car {
@Override
public void name(){
System.out.println("特斯拉");
}
}
``
public class WuLing implements Car {
@Override
public void name(){
System.out.println("wulinghongguan");
}
}
用户买车
public class Consumer {
public static void main(String[] args) {
/*Car car = (Car) new WuLing();
Car car1 = (Car) new Tesla();*/
//2.使用工厂创建
Car car = CarFactory.getCar("五菱");
Car car1 = CarFactory.getCar("特斯拉");
car.name();
car1.name();
}
}

理想化的模型


浙公网安备 33010602011771号