前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈创建型模式

浅谈创建型模式

作者头像
泰斗贤若如
发布2020-06-15 10:35:29
3590
发布2020-06-15 10:35:29
举报
文章被收录于专栏:泰斗贤若如泰斗贤若如

浅谈创建型模式

前言:

最近学习了设计模式,对设计模式有了一些了解,下面我来浅谈一下设计模式中的创建型模式吧!

模式的定义

说到“模式”,其实模式起源于建筑业而非软件专业,所谓的模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,人们可以无数次地重用那些已有的解决方案,无需再重复相同的工作。简单点说,模式就是在特定环境中解决问题的一种方案

设计模式的定义

我要说的创建型模式是设计模式中的一类,在说创建型模式之前我先介绍一下设计模式,设计模式是一套被反复使用、多数人知晓的、经过分类编写的、代码设计经验的总结。我们在写程序的过程中使用设计模式就是为了可重用代码、让代码更容易被他人理解、提高代码的可靠性

对创建型模式的认识

在软件工程中,创建型模式是处理对象创建的设计模式,试图根据实际情况使用合适的方式创建对象。

创建型模式旨在将系统与它的对象创建、结合、表示的方式分离。这些设计模式在对象创建的类型、主体、方式、时间等方面提高了系统的灵活性。

基本的对象创建方式可能会导致设计上的问题,或增加设计的复杂度。创建型模式通过以某种方式控制对象的创建来解决问题。

创建型模式由两个主导思想构成。一是将系统使用的具体类封装起来,二是隐藏这些具体类的实例创建和结合的方式。

创建型模式又分为对象创建型模式类创建型模式。对象创建型模式处理对象的创建,类创建型模式处理类的创建。详细地说,对象创建型模式把对象创建的一部分推迟到另一个对象中,而类创建型模式将它对象的创建推迟到子类中。

现代软件工程更加依赖对象的组合,而不是类的继承,强调从硬编码的行为转变到定义一组基本行为来组合成复杂的行为。硬编码的行为不够灵活,因为如果想要改变设计的一部分,需要通过重写或者重新实现才能完成。另外,硬编码没有提高重用性,而且难以跟踪错误。由于这些原因,创建型模式比硬编码的行为更有用。创建型模式使设计变得更灵活,提供了不同的方式,从代码中移除了对需要实例化的具体类的引用。换句话说,这些模式增强了对象和类之间的独立性

创建型模式的使用

在以下情况中,可以考虑应用创建型模式:

  • 一个系统需要和它的对象和产品的创建相互独立。
  • 一组相关的对象被设计为一起使用。
  • 隐藏一个类库的具体实现,仅暴露它们的接口。
  • 创建独立复杂对象的不同表示。
  • 一个类希望它的子类实现它所创建的对象。
  • 类的实例化在运行时才指定。
  • 一个类只能有一个实例,而且这个实例能在任何时候访问到。
  • 实例应该能在不修改的情况下具有可扩展性。

创建型模式的实例

创建型设计模式的一些例子如下:

  • 抽象工厂模式,提供一个创建相关或依赖对象的接口,而不指定对象的具体类。
  • 工厂方法模式,允许一个类的实例化推迟到子类中进行。
  • 生成器模式,将一个复杂对象的创建与它的表示分离,使同样的创建过程可以创建不同的表示。
  • 延迟初始化模式,将对象的创建,某个值的计算,或者其他代价较高的过程推迟到它第一次需要时进行。
  • 对象池模式,通过回收不再使用的对象,避免创建和销毁对象时代价高昂的获取和释放资源的过程。
  • 原型模式,使用原型实例指定要创建的对象类型,通过复制原型创建新的对象。
  • 单例模式,保证一个类只有一个实例,并且提供对这个实例的全局访问方式。

总结

创建型模式的关注点:

创建型模式关注对象的创建过程。 创建型模式描述如何将对象的创建和使用分离,让开发人员在使用对象时无需关心对象的创建细节,从而降低系统的耦合度。 软件在运行时类将实例化成对象,并由这些对象来协作完成各项业务功能

创建型模式的作用:

创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离,对开发人员隐藏了类的实例的创建细节。

创建型模式要解决的问题:

每一个创建型模式都通过采用不同的解决方案来回答三个问题,即创建什么(what),由谁创建(who)和何时创建(when)。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 浅谈创建型模式
    • 前言:
      • 模式的定义
        • 设计模式的定义
          • 对创建型模式的认识
            • 创建型模式的使用
              • 创建型模式的实例
                • 总结
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档