
设计模式
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 · 257 阅读 · 0 评论 -
门面模式 Facade Pattern
门面模式:子系统的外部与其内部的通信必须通过统一的对象进行 重点:提供一个高层次的接口,使得子系统更易于使用 举一个例子:比如我想要建一个房子,我需要找到和泥工,搬砖工,砌墙工,并且需要协调他们之间的工作。 使用门面模式,就相当于以上的工作,我只需要找到一个包工头(门面),他来帮我协调好各种工人的工作,我只需要和包工头对接就可以 实现: 首先实现子系统类 //和泥工 public class Mason { public void mix() { S原创 2020-07-15 11:18:25 · 174 阅读 · 0 评论 -
观察者模式 Observer
描述:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新 角色: Observer :所有观察者接口 ConcreteObserver:具体观察的对象 Subject:主题,每个主题都可以有任何数量的观察者,提供删除和增加观察者的接口 ConcerteSubject:实现增加和删除观察者,实现通知所有观察者对象 //主题 pu...原创 2020-04-21 22:03:24 · 154 阅读 · 0 评论 -
适配器模式
描述:将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作 角色: Target(目标抽象类):定义客户所需接口 Adaptee(适配者类):现有的接口 Adapter(适配器类):作为一个转换器,对Adaptee和Target进行适配 类适配器 //适配者类,当前存在的一个接口 public class Adaptee { public void ad...原创 2020-04-21 22:02:12 · 130 阅读 · 0 评论 -
抽象工厂模式 Abstract Factory
描述:有多种产品,一个工厂负责创建所有类型的产品 角色: AbstractFactory:用于声明生成抽象产品的方法 ConcreteFactory:实现了抽象工厂声明的生成抽象产品的方法,生成一组具体产品,这些产品构成了一个产品族; AbstractProduct:每种类型产品的接口,种类多少种接口就多少个 Product:一种类型产品底下的多种产品 //产品族的抽象类 pub...原创 2020-04-21 21:59:42 · 131 阅读 · 0 评论 -
工厂方法模式 Factory Method
描述:一个具体工厂负责生产一种产品 角色: 抽象产品(Product):具体产品的父类,描述具体产品的公共接口 具体产品(Concrete Product):描述生产的具体产品 抽象工厂(Creator):具体工厂的父类,描述具体工厂的公共接口 具体工厂(Concrete Creator):实现工厂方法创建产品的实例 //抽象工厂类 abstract class Factory{...原创 2020-04-21 21:58:17 · 101 阅读 · 0 评论 -
简单工厂模式 Simple Factory
描述:定义一个工厂类,根据参数创建不同的产品。 角色: Factory(工厂类):根据参数,创建所需对象 Product(抽象类产品):工厂类创建的所有对象的父类,封装了产品的公共方法 ConcreteProduct(具体产品):工厂创建目标,所有被创建的对象都是某个具体类的实例。它要实现抽象产品中声明的抽象方法 //抽象产品类 abstract class Product { ...原创 2020-04-21 21:56:07 · 133 阅读 · 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 · 94 阅读 · 1 评论