创建者模式->工厂模式

这先说下我对接口的认识,接口也是一个特殊的类,它能每一个他的子类都必须使用他的一个方法,有主助于代码的统一,实现设计模式的简洁化

工厂模式:最简单的理解就是各尽其职,模块化问题,提高效率

1.0简单工厂

public interface Car
{
    void run();
}


public class Audi implements Car
{
    @Override
    public void run()
    {
        System.out.println("I am AUdi");
    }

}




public class BiYaDi  implements Car
{
    @Override
    public void run()
    {
        System.out.println("I am BiYaDi");
    }
}


/*
* 实现了创建者和调用者的分离
* */

/*
* 面向对象的设计原则
*OCP 一个软件的实体应该对扩展开放 对修改关闭
* DIP 针对接口编程 而不是针对实现编程
* 直与你直接的朋友通讯 避免和陌生人通讯
* */

//简单工厂模式

//不能直接增加子类,得改代码,破坏了开闭原则

public class Car_Factory1
{
    public static Car Create_Car(String Type)
    {
        if("Audi".equals(Type))
        {
            return new Audi();
        }
        else
        {
            return new BiYaDi();
        }
    }

    //第二种直接返回也可以
    public  static  Car Create_Audi()
    {
        return new Audi();
    }

    public static  Car Create_BiYaDi()
    {
        return new BiYaDi();
    }

}
/*全部的工作都在这一个公司,所以要不断地破坏结构*/


public class Test_1
{
    public static void main(String[] args)
    {
        Car C1= Car_Factory1.Create_Car("Audi");
        Car C2= Car_Factory1.Create_Car("BiYaDi");
        C1.run();
        C2.run();
    }
}

  

2.0工厂方法

 

扫描二维码关注公众号,回复: 11163778 查看本文章

 

 

 3.0抽象工厂

代码

 

 

 

 

-----------------------------------------------------------------------------非代码部分------------------------------

简单工厂:使用起来非常的简单,但是不太符合开闭原则,扩展性不太好

工厂方法:完全满足开闭原则 复杂程度比较高,修改的话相互独立,但是很麻烦

选择:虽然满足开闭原则很好,但是简单工厂用的是真的多

抽象工厂:

* 抽象工厂用来生产不同产品族(高端低端的区别)的全部产品(完整的汽车),对于新添加的产品无能为力,但是可以添加产品族
用起来真的是很麻烦,但是方便数据的管理

猜你喜欢

转载自www.cnblogs.com/Loving-Q/p/12814710.html