![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Susceptible0506
这个作者很懒,什么都没留下…
展开
-
一个简单例子理解三大工厂模式
1 简单工厂模式定义一个工厂类,根据传入的参数的值不同返回不同的实例特点:被创建的实例具有共同的父类或接口例子:客户端想要获取不同的鼠标类别对象1.鼠标接口以及实现类public interface Mouse { void sayHi();}public class DellMouse implements Mouse{ public void sayHi() { System.out.println("我是戴尔鼠标"); }.原创 2020-07-17 16:45:06 · 199 阅读 · 0 评论 -
门面模式 Facade Pattern
门面模式:子系统的外部与其内部的通信必须通过统一的对象进行重点:提供一个高层次的接口,使得子系统更易于使用举一个例子:比如我想要建一个房子,我需要找到和泥工,搬砖工,砌墙工,并且需要协调他们之间的工作。使用门面模式,就相当于以上的工作,我只需要找到一个包工头(门面),他来帮我协调好各种工人的工作,我只需要和包工头对接就可以实现:首先实现子系统类//和泥工public class Mason { public void mix() { S原创 2020-07-15 11:18:25 · 138 阅读 · 0 评论 -
观察者模式 Observer
描述:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新角色:Observer :所有观察者接口ConcreteObserver:具体观察的对象Subject:主题,每个主题都可以有任何数量的观察者,提供删除和增加观察者的接口ConcerteSubject:实现增加和删除观察者,实现通知所有观察者对象//主题pu...原创 2020-04-21 22:03:24 · 111 阅读 · 0 评论 -
适配器模式
描述:将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作角色:Target(目标抽象类):定义客户所需接口Adaptee(适配者类):现有的接口Adapter(适配器类):作为一个转换器,对Adaptee和Target进行适配类适配器//适配者类,当前存在的一个接口public class Adaptee { public void ad...原创 2020-04-21 22:02:12 · 91 阅读 · 0 评论 -
抽象工厂模式 Abstract Factory
描述:有多种产品,一个工厂负责创建所有类型的产品角色:AbstractFactory:用于声明生成抽象产品的方法ConcreteFactory:实现了抽象工厂声明的生成抽象产品的方法,生成一组具体产品,这些产品构成了一个产品族;AbstractProduct:每种类型产品的接口,种类多少种接口就多少个Product:一种类型产品底下的多种产品//产品族的抽象类pub...原创 2020-04-21 21:59:42 · 101 阅读 · 0 评论 -
工厂方法模式 Factory Method
描述:一个具体工厂负责生产一种产品角色:抽象产品(Product):具体产品的父类,描述具体产品的公共接口具体产品(Concrete Product):描述生产的具体产品抽象工厂(Creator):具体工厂的父类,描述具体工厂的公共接口具体工厂(Concrete Creator):实现工厂方法创建产品的实例//抽象工厂类abstract class Factory{...原创 2020-04-21 21:58:17 · 68 阅读 · 0 评论 -
简单工厂模式 Simple Factory
描述:定义一个工厂类,根据参数创建不同的产品。角色:Factory(工厂类):根据参数,创建所需对象Product(抽象类产品):工厂类创建的所有对象的父类,封装了产品的公共方法ConcreteProduct(具体产品):工厂创建目标,所有被创建的对象都是某个具体类的实例。它要实现抽象产品中声明的抽象方法//抽象产品类abstract class Product{ ...原创 2020-04-21 21:56:07 · 81 阅读 · 0 评论 -
单例模式 singleton
描述:确保某一个类只有一个实例,并且自行实例化注意:类的构造函数必须是私有的public class Test{ private static Test instance =null; private Test(){} public static Test getInstance() { if(instance==null) { instance = new Tes...原创 2020-04-21 21:54:40 · 68 阅读 · 1 评论