Java设计模式笔记之工厂方法模式

JAVA设计模式笔记之工厂方法模式

工厂方法模式同样属于类的创建型模式又被称为多态工厂模式 ,它的核心意义在于定义一个对象的工厂接口来提供操作的方法而不去负责去创建实例,使之成为
一个抽象的工厂角色,那么创建实例的任务就落到了子类身上。它相比于简单工厂模式的优势就在于密闭性,不用因为改变了工厂角色而去改变核心工厂的内容。

 


工厂设计模式主要分为以下几个部分:
①工厂接口(抽象工厂):工厂设计模式的核心,所有工厂类都需要实现的接口。
②工厂类(实例工厂):抽象工厂的实现,实例化对象。
③抽象父类:提供给所有实例化子类所需要的公共抽象方法,可以是类也可以是接口。
④实例子类:把抽象父类提供的方法根据需要进行重写。

 

具体流程:

工厂接口(抽象工厂)代码:
 

public interface CarFactory {
    //抽象方法
    public Car getType();
}


工厂类(实例工厂)代码:
 

public  class suvFactory implements CarFactory {

    @Override
    public Car getType() {
        // TODO Auto-generated method stub
        //创建实例
        return new suv();
    }

}

 

抽象父类代码:
 

public interface Car {
    //抽象方法
    public void ProducCar();
}



实例子类代码:
 

public class suv implements Car {
	@Override
	public void ProducCar() {
		// TODO Auto-generated method stub
		System.out.println("生产SUV");
	}

}


···

public class suv implements Car {
    @Override
    public void ProducCar() {
        // TODO Auto-generated method stub
        System.out.println("生产SUV");
    }

}

···

主模块代码:

public class MainClass {
    public static void main(String[] args) {
        //创建一个实例工厂suvFactory
        CarFactory factory = new suvFactory();
        //用suvFactory给suvCar获得实例
        Car suvCar = factory.getType();
        suvCar.ProducCar();
    }
}

优点:当需要更新的时候不需要对客户端修改,只需要增加一个只需要增加一个实例对象和一个实例工厂很好的符合了开闭原则。

以下是设计模式原则:
①开闭原则:https://baike.baidu.com/item/%E5%BC%80%E9%97%AD%E5%8E%9F%E5%88%99/2828775
②里氏替换原则;https://baike.baidu.com/item/%E9%87%8C%E6%B0%8F%E6%9B%BF%E6%8D%A2%E5%8E%9F%E5%88%99
③依赖倒置原则:https://baike.baidu.com/item/%E4%BE%9D%E8%B5%96%E5%80%92%E7%BD%AE%E5%8E%9F%E5%88%99/6189149?fromtitle=%E4%BE%9D%E8%B5%96%E5%80%92%E8%BD%AC%E5%8E%9F%E5%88%99&fromid=7706090
④接口隔离原则:https://baike.baidu.com/item/%E6%8E%A5%E5%8F%A3%E9%9A%94%E7%A6%BB%E5%8E%9F%E5%88%99
⑤迪米特法则:https://baike.baidu.com/item/%E8%BF%AA%E7%B1%B3%E7%89%B9%E6%B3%95%E5%88%99/2107000?fr=aladdin。
⑥单一职责原则:https://baike.baidu.com/item/%E5%8D%95%E4%B8%80%E8%81%8C%E8%B4%A3%E5%8E%9F%E5%88%99/9456515

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值