• 23中设计模式--创建型模式


    • 工厂模式(Factory Pattern)

    • 抽象工厂模式(Abstract Factory Pattern)

    • 单例模式(Singleton Pattern)

    • 建造者模式(Builder Pattern)

    • 原型模式(Prototype Pattern)

    这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

    工厂模式(Factory Pattern)

    在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

    应用实例: 1、您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。

          2、Hibernate 换数据库只需换方言和驱动就可以。

     

    抽象工厂模式(Abstract Factory Pattern)

    是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
    在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
    应用实例:工作了,为了参加一些聚会,肯定有两套或多套衣服吧,比如说有商务装(成套,一系列具体产品)、时尚装(成套,一系列具体产品),甚至对于一个家庭来说,可能有商务女装、商务男装、时尚女装、时尚男装,这些也都是成套的,即一系列具体产品。假设一种情况(现实中是不存在的,要不然,没法进入共产主义了,但有利于说明抽象工厂模式),在您的家中,某一个衣柜(具体工厂)只能存放某一种这样的衣服(成,。,套,一系列具体产品),每次拿这种成套的衣服时也自然要从这个衣柜中取出了。用 OOP 的思想去理解,所有的衣柜(具体工厂)都是衣柜类的(抽象工厂)某一个,而每一件成套的衣服又包括具体的上衣(某一具体产品),裤子(某一具体产品),这些具体的上衣其实也都是上衣(抽象产品),具体的裤子也都是裤子(另一个抽象产品)。
    使用场景: 1、QQ 换皮肤,一整套一起换。 2、生成不同操作系统的程序。
    注意事项:产品族难扩展,产品等级易扩展。

    现代人,魔法人, 实现人接口的三个方法,具体实现工厂有这个三个方法的实现,具体实现工厂又继承了抽象工厂。

    单例模式(Singleton Pattern)

      饿汉模式就够用了

    //在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快
    public class SingletonObject1 {
        // 利用静态变量来存储唯一实例
        private static final SingletonObject1 instance = new SingletonObject1();
    
        // 私有化构造函数
        private SingletonObject1(){
            // 里面可能有很多操作
        }
    
        // 提供公开获取实例接口
        public static SingletonObject1 getInstance(){
            return instance;
        }
    }

    建造者模式(Builder Pattern)

    封装一个复杂对象的构建过程,并可以按步骤构造。

    游戏中一个小的地形含有墙,水,草地等对象

    通过建造者接口及建造者接口实现类,build().build().build()分步实现一个地形的创建。

    原型模式(Prototype Pattern)

     克隆模式,实现接口Cloneable ,重写clone(),浅克隆和深克隆

    浅克隆:克隆对象之间修改相互影响。 

  • 相关阅读:
    python编程基础之十四
    python编程基础之十三
    python编程基础之十二
    C++11的新特性
    第六章 分支语句和逻辑运算符
    第五章 循环和关系表达式
    C++ 管理数据内存的方法
    C++数组和指针
    第二、三章 开始学习C++、数据处理
    第一章 预备知识
  • 原文地址:https://www.cnblogs.com/liyifang/p/13847990.html
Copyright © 2020-2023  润新知