设计模式
java 23种设计模式
黑白胜负手
无尽的夜只能慢慢的走,坚韧的石头只有靠水滴一点一点的磨穿!
展开
-
观察者模式
观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象发生改变时,它的所有观察者都会收到通知并自动更新。观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象发生改变时,它的所有观察者都会收到通知并自动更新。当一个系统需要将一个对象和其他对象解耦时,例如,一个对象需要通知其他对象进行更新,但是这些对象的类型和数量是未知的,因此需要使用观察者模式来实现。原创 2023-03-12 12:26:19 · 185 阅读 · 0 评论 -
适配器模式
适配器模式是一种结构型设计模式,它的作用是将一个类的接口转换成客户端希望的另一个接口。目标接口是客户端所期望的接口,它定义了客户端可以调用的方法。适配器是将被适配者的接口转换成目标接口的中间件,它实现了目标接口,并持有一个被适配者的对象。被适配者是客户端所需要的对象,但它的接口与目标接口不兼容。适配器模式是一种非常有用的设计模式,它可以将不兼容的接口转换成兼容的接口,从而让它们能够协同工作。在实际开发中,适配器模式经常用于将旧的接口转换成新的接口,或者将多个类的接口转换成一个统一的接口。原创 2023-03-11 13:47:22 · 94 阅读 · 0 评论 -
策略模式教程
如果需要添加新的打折策略,只需要实现一个新的具体策略类并在客户端代码中设置即可,而不需要修改原有的代码。同时,策略模式还符合开闭原则,即对扩展开放,对修改关闭,当需要添加新的算法时,只需要增加一个新的具体策略即可,而不需要修改原有的代码。同时,策略模式还可能会导致客户端代码变得复杂,因为客户端需要了解不同的策略类和它们的区别,从而选择合适的策略。下面是一个策略模式的示例代码,它模拟了一个商品打折的场景。最后,我们定义一个上下文类,它包含了一个对策略对象的引用,并提供了一个方法用于计算打折后的价格。原创 2023-03-11 13:03:25 · 457 阅读 · 0 评论 -
模板方法模式
模板方法模式使得子类可以在不改变算法结构的情况下重新定义算法中的某些步骤。抽象类中定义了一个模板方法,该方法包含了算法的骨架和一些基本方法,基本方法可以是抽象方法、具体方法和钩子方法。同时它也遵循了开闭原则,即对扩展开放,对修改关闭,当需要修改算法时,只需要修改具体类中的方法即可,而不需要修改抽象类和其他具体类。在上面的示例中,Game是一个抽象类,它定义了一个模板方法playGame(),这个方法包含了一个算法框架,其中start()、play()和end()是抽象方法,由具体子类实现。原创 2023-03-11 12:52:21 · 58 阅读 · 0 评论 -
工厂方法模式
下面是一个工厂方法模式的示例代码。原创 2023-03-11 12:39:15 · 48 阅读 · 0 评论 -
单例模式的各种实现方式
懒汉式单例模式在第一次调用getInstance方法的时候才创建单例对象,因此可以节省资源。但是这种方式不是线程安全的,需要进行线程同步。静态内部类单例模式在第一次调用getInstance方法的时候才创建单例对象,并且使用Java的类加载机制保证线程安全。双重检查锁单例模式在第一次调用getInstance方法的时候才创建单例对象,并且使用双重检查锁机制保证线程安全。饿汉式单例模式在类加载的时候就创建了单例对象,因此线程安全,但是可能会造成资源浪费。好的,下面分别介绍Java中实现单例模式的几种方式。原创 2023-03-11 12:28:57 · 65 阅读 · 0 评论