【设计模式】--创建型模式

【前言】

设计模式主要分为三种类型,分别是:创建型模式、行为型模式、结构型模式,今天我们主要讲一下创建型模式。

【正文】

1.什么是创建型模式?

创建型模式旨在将系统与它的对象创建、结合、表示的方式分离。

2.为什么要有创建型模式或者说创建型模式存在的意义?

创建型模式是处理对象创建的设计模式,试图根据实际情况使用合适的方式创建对象。基本的创建方式可能会导致软件设计上的问题,所以创建型模式是通过某种方式控制对象的创建来解决问题。

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

3.创建型模式分为哪几种?

(1)简单工厂模式:它定义一个具体的工厂类来负责创建所有类的对象,并初始化创建的对象。

简单工厂的组成:工厂类、抽象类、具体类,然后通过通过客户端调用工厂类创建相应的对象。

注:简单工厂模式是所有工厂模式中最简单的一个,它不属于23种模式中的一个模式,它主要是帮助初学者了解设计模式,增长信心的一个模式。

(2)  工厂方法模式:抽象工厂类负责定义一个用于创建对象的接口,让子工厂类决定实例化哪一个类,它使一个类的实例化延迟到其子类。

工厂方法的组成:抽象工厂类、具体工厂类、抽象产品类、具体产品类。

(3)抽象工厂模式:提供一个创建一系列或相关依赖对象的接口,而无需指定它们具体的类。

抽象工厂的组成:抽象工厂类、具体工厂类、抽象产品类、具体产品类。

它主要适用于:

一个系统要由多个产品系列中的一个来配置时

一个系统要独立于它的产品的创建、组合和表示时

当要强调一系列相关的产品对象的设计以便进行联合使用时

当提供一个产品类库,而只要显示它们的接口而不是实现时

(4)建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

例如:在建造游戏角色时,造小人的过程是稳定的,都需要头身手脚,而创建的细节是不同的,有高矮胖瘦,但对于客户来讲,客户只关心结果,而不重视具体的建造细节,我们只需要根据客户的需求创建相应的一个小人罢了。这就是创建模式的动机。、

(5)单例模式:保证一个类仅有一个实例,而且自行实例化并向整个系统提供整个实例。

例如:在现实生活中,居民身份证号具有唯一性,同一个人不允许有多个身份证号码,如果不慎丢失,在补办的时候还是使用原来的身份证号。

 

(6)原型模式:指定创建对象的种类,并且通过拷贝这些原型创建新的对象

例如:在很多软件中,如果每次创建一个对象要花大量的时间,这时候就可以考虑用原型模式,复制得到的对象与原型对象是两个类型相同但是内存地址不同的对象,通过原型模式可以大大提高对象的创建效率。

4.他们之间的联系或者区别是什么?

(1)简单工厂与工厂方法

工厂方法是简单工厂的扩展,工厂方法解决了简单工厂不符合开闭原则的问题,工厂方法模式是把具体对象创建交给相应的子类去做,比如我们现在要添加一种运算类,只需要添加相应的运算类和相应的工厂子类即可,符合开闭原则。每个具体的工厂子类只负责创建自己所对应的产品,符合单一职责原则。可以说工厂方法模式是简单工厂的升级版,即保留了简单工厂的优点,又解决了简单工厂的缺点。

(2)抽象工厂和工厂方法

工厂方法针对的是一个产品等级的结构,而抽象工厂是针对多个产品等级的结构。

(3)建造者模式和抽象工厂模式

他们都可以创建复杂的对象,但是建造者模式注重一步一步的去建造一个复杂的对象,强调的是产品的内部组成。而抽象工厂模式注重的是多个系列的产品对象。

5.总结:

创建型模式都是为了更好的创建对象,使程序更面向对象化,我们在项目中可以好好的利用一下这些模式。

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
Java设计模式是一组经过实践验证的面向对象设计原则和模式,可以帮助开发人员解决常见的软件设计问题。下面是常见的23种设计模式: 1. 创建型模式(Creational Patterns): - 工厂方法模式(Factory Method Pattern) - 抽象工厂模式(Abstract Factory Pattern) - 单例模式(Singleton Pattern) - 原模式(Prototype Pattern) - 建造者模式(Builder Pattern) 2. 结构模式(Structural Patterns): - 适配器模式(Adapter Pattern) - 桥接模式(Bridge Pattern) - 组合模式(Composite Pattern) - 装饰器模式(Decorator Pattern) - 外观模式(Facade Pattern) - 享元模式(Flyweight Pattern) - 代理模式(Proxy Pattern) 3. 行为模式(Behavioral Patterns): - 责任链模式(Chain of Responsibility Pattern) - 命令模式(Command Pattern) - 解释器模式(Interpreter Pattern) - 迭代器模式(Iterator Pattern) - 中介者模式(Mediator Pattern) - 备忘录模式(Memento Pattern) - 观察者模式(Observer Pattern) - 状态模式(State Pattern) - 策略模式(Strategy Pattern) - 模板方法模式(Template Method Pattern) - 访问者模式(Visitor Pattern) 4. 并发模式(Concurrency Patterns): - 保护性暂停模式(Guarded Suspension Pattern) - 生产者-消费者模式(Producer-Consumer Pattern) - 读写锁模式(Read-Write Lock Pattern) - 信号量模式(Semaphore Pattern) - 线程池模式(Thread Pool Pattern) 这些设计模式可以根据问题的特点和需求来选择使用,它们提供了一些可复用的解决方案,有助于开发高质量、可维护且易于扩展的软件系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张铎(信念)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值