Java 设计模式

什么是设计模式?

 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。设计模式一共有23种,这 23 种设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性,以及类的关联关系和组合关系的充分理解

23种设计模式 

分为三大类

创建型模式:工厂方法模式(Factory Method)抽象工厂模式(Abstract Factory)单例模式(Singleton)建造者模式(Builder)原型模式(Prototype)

在创建对象的同时隐藏创建逻辑,不使⽤ new 直接实例化对象,程序在判断需要创建哪些对象时更灵活

结构型模式:适配器模式(Adapter)装饰器模式(Decorator)代理模式(Proxy)外观模式(Facade)桥接模式(Bridge)组合模式(Composite)享元模式(Flyweight)

通过类和接⼝间的继承和引⽤实现创建复杂结构的对象

行为型模式:策略模式(Strategy)模板方法模式(Template Method)观察者模式(Observer)迭代器模式(Iterator)责任链模式(Chain of Responsibility)命令模式(Command)备忘录模式(Memento)状态模式(State)访问者模式(Visitor)中介者模式(Mediator)解释器模式(Interpreter)

 通过类之间不同通信方式实现不同行为

设计模式的原则

设计模式的原则有依赖导致原则、单一职责原则、接口隔离原则、开闭原则、迪米特法原则、里氏替换原则

简单工厂模式

简单工厂模式指由⼀个工厂对象来创建实例,客户端不需要关注创建逻辑,只需提供传⼊工厂的参数

适⽤于工厂类负责创建对象较少的情况,缺点是如果要增加新产品,就需要修改工厂类的判断逻辑,违背开闭原则,且产品多的话会使工厂类⽐较复杂

Calendar 抽象类的⽇历对象。方法,调⽤方法根据不同的地区参数创建不同的Spring 中的 BeanFactory 使⽤简单工厂模式,根据传⼊⼀个唯⼀的标识来获得 Bean 对象

实例演示

/**
 * 拿铁、美式咖啡、卡布奇诺等均为咖啡家族的一种产品
 * 咖啡则作为一种抽象概念
 * @author 
 */
 
public abstract class Coffee {
 
    /**
     * 获取coffee名称
     * @return
     */
 
    public abstract String getName();
 
}
 
 
/**
 * 美式咖啡
 * @author
 *
 */
 
public class Americano extends Coffee {
 
 
    @Override
 
    public String getName() {
 
        return "美式咖啡";
    }
 
}
 
 
/**
 * 卡布奇诺
 * @author
 */
 
public class Cappuccino extends Coffee {
 
 
    @Override
 
    public String getName() {
 
        return "卡布奇诺";
 
    }
 
}
 
 
/**
 * 拿铁
 * @author
 */
 
public class Latte extends Coffee {
 
    @Override
 
    public String getName() {
 
        return "拿铁";
    }
 
}

工厂方法模式

工厂方法模式指定义⼀个创建对象的接⼝,让接⼝的实现类决定创建哪种对象,让类的实例化推迟到⼦类中进行。

客户端只需关⼼对应工厂而无需关⼼创建细节,主要解决了产品扩展的问题,在简单⼯⼚模式中如果产品种类变多,工厂的职责会越来越多,不便于维护。<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值