zoukankan      html  css  js  c++  java
  • 创建者模式->工厂模式

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

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

    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工厂方法

     

     

     

     3.0抽象工厂

    代码

     

     

     

     

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

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

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

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

    抽象工厂:

    * 抽象工厂用来生产不同产品族(高端低端的区别)的全部产品(完整的汽车),对于新添加的产品无能为力,但是可以添加产品族
    用起来真的是很麻烦,但是方便数据的管理
  • 相关阅读:
    别逃避,是时候来给JVM一记重锤了
    从CAS讲起,真正高性能解决并发编程的原子操作
    深入理解typedef
    【Valse首发】CNN的近期进展与实用技巧(上)
    基于深度学习的目标检测研究进展
    全卷积网络:从图像级理解到像素级理解
    产生式与判别式模型
    游戏后台杂谈:后台的语言、系统与构架
    优化人脸检测网络
    最长的回文子序列
  • 原文地址:https://www.cnblogs.com/Loving-Q/p/12814710.html
Copyright © 2011-2022 走看看