设计模式学习01

1 GOF设计原则

1.1对接口编程而不是对实现编程
	面向接口编程:不需要知道特定的实现类,低耦合。
1.2 优先使用对象组合而不是继承
继承是is-a,组合是has-a.

2设计模式类型

2.1创建型模式

2.1.1 工厂模式
  • 工厂模式(Factory Pattern)是 Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

  • 实现方式 :创建接口,创建实现类,创建工厂,获取对象。具体实现参考菜鸟教程
    -工厂模式
    自己感悟:提供一个公开的方法去创建对象,隐藏了创建对象的细节。比如spring的工厂,通过getbean方法获取实例对象,隐藏了内部实现的细节。

  • 探讨spring FactoryBean细节 :提供了用户自己定义工厂的方法。只需要实现getObjectType,getObject,isSingleton.再将其配置到spring中,依赖该工厂的属性会自动调用getObject方法。

2.1.2 抽象工厂模式
  • 抽象工厂模式(Abstract FactoryPattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
  • 抽象工厂定义工厂主要完成的内容,具体实现由单个简单工厂类进行实现。比如:戴尔只生产主机和鼠标,即抽象工厂定义获取主机和鼠标的抽象方法,然后归定由两个工厂去实现,一个生产主机一个生产鼠标,这两个工厂集成抽象工厂,分别实现自己要实现的方法。然后在创建一个工厂创造器,供外部调用获取实例工厂。通过这种方式能够保证整套产品都属于一个工厂。对比2.1.1简单的工厂模式,它只实现一种对象的创建,而抽象工厂则规定了一系列对象的创建,具体实现由简单的工厂实现。
2.1.3 单例模式
  • 单例模式(Singleton Pattern)是 Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

2.1.4 建造者模式

  • 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。
  • 实际:将一个复杂的构建过程与其表示相分离,即是一步一步的建造过程.

2.1.5 原型模式

  • 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用
  • 实际就是当初始化一个类需要耗费很大的代价,我们可以把这个需要共用的状态先保存起来,然后当在需要时通过返回这个对象的克隆进行操作。这样能够节省一些耗时的初始化工作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值