一.工厂模式
定义: Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
用途:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
个人理解:普通工厂模式相当于一个专卖品商店,提供一种类产品的创建,你想要的产品,商店就会提供给你。例如:这是一个面包专卖店,
那么你只能在这里买到面包,你只需要给商店打一声招呼,老板来一块面包,你就会得到你想要的面包(类对象),如果你想买到其他的产
品,商店就需要扩展业务,比如引进牛奶,饮料之类的,
但是扩展业务会带来相应的负担。
官方配图:
代码演示:
1.Bread接口
2.定义红色面包类,并实现Bread接口
3.定义黑色面包类,并实现Bread接口
4.定义工厂类,BreadFactory
5.实例化工厂类,并选着要被制造出来的类
二.抽象工厂模式
定义:是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
用途:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
个人理解:一个超级工厂,可以创建其他的工厂,换句话说,就是我可以有一个卖面包的店,然后还有一个卖饮品的店,他们都属于我,你想要饮料还是面包,
我都可以提供给你。抽象类工厂就是这样的作用。
官方配图:
代码实现:在已经有一个面包工厂的情况下,我再添加了一个Shape工厂,具体实现就不再描述了
1.创建抽象工厂类
2.让Bread工厂和Shape分别继承抽象工厂类
3.创建工厂生成器类
4.应用
三.观察者模式
定义:当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。
用途:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
个人理解:观察者模式有点像学校里的播报员,当他从领导那里得到通知的时候,他就会通过广播的方式来通知同学们,观察者就是这样的行为模式,其中领导就是被观察的
对象,而同学们就是当被观察对象作出动作时通知的对象。
官方配图:
代码实现:
1.创建带有绑定观察者到 Client 对象和从 Client 对象解绑观察者的方法的Subject类
2.创建 Observer 类
3.创建实体观察者类
4.使用 Subject 和实体观察者对象。
5.结果:
四.单例模式
定义:是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
用途:保证一个类仅有一个实例,并提供一个访问它的全局访问点
个人理解:在java知音的解读中,把单例模式的唯一创建对象比作god,这个比喻是很贴切的,没有人能够创造god。单例从字面上来讲,就是只有一个实例,所有的访问都会经过他。
官方配图:
代码实现:
来源:https://www.cnblogs.com/SoftwareBuilding/p/11139885.html