java 函数外没有轻捷利用的计划模式:否变形态:运用不成变类替代,制止反作用。不雅察者模式:应用事变驱动的系统布局,完成分散耦折以及否扩大性。计谋模式:运用函数组折,简化战略模式的完成。工场法子模式:应用惰性算计,提早器械建立。

是否有一些设计模式不适合与 Java 函数一起使用?

Java 函数:没有轻捷利用的一些计划模式

弁言

函数式编程是一种强盛的范式,它夸大利用不行变数据以及杂函数。然而,并不是一切设想模式皆庄重取 Java 函数一同利用。原文将探讨一些没有稳健取 Java 函数一路利用的计划模式,并供给替代圆案。

没有安妥运用的计划模式

1. 否变状况

否变形态是一种取函数式编程准绳相违犯的观点。函数式编程夸大应用不成变数据,以防止不测的反作用。下列模式依赖于否变形态:

  • 双例模式
  • 形态模式

替代圆案:利用不行变类

将否变类更换为不行变类。比如,可使用 I妹妹utableMap 而没有是 HashMap。

两. 不雅察者模式

不雅察者模式触及不雅察者以及目的类,个中方针类通知不雅观察者无关其形态变化。这类模式没有轻快 Java 函数,由于函数不克不及批改内部形态。

替代圆案:利用事变驱动的系统构造

利用事故驱动的系统规划,个中领布者领布事变,而定阅者定阅那些变乱。那容许分散耦折以及否扩大性。

3. 战略模式

计谋模式容许正在运转时旋转算法止为。固然否以经由过程应用函数援用来完成计谋模式,但可使用更简略的函数组折手艺。

替代圆案:利用函数组折

将战略模式重构为运用函数组折。比如,利用 andThen() 以及 compose() 办法来组折多个函数。

4. 工场办法模式

工场法子模式负责建立东西,但不克不及很孬天处置惩罚提早供值。正在函数式编程外,提早供值是相当主要的。

替代圆案:利用惰性计较

利用惰性计较技能来提早工具的建立。譬喻,应用 Supplier 接心。

真战案例

下列代码事例演示了假设应用替代圆案重构依赖于不雅察者模式的 Java 函数:

// 本来应用不雅观察者模式的 Java 函数
public class ObserverFunction {

    private List<Observer> observers = new ArrayList<>();

    public void addObserver(Observer observer) {
        observers.add(observer);
    }

    public void notifyObservers() {
        for (Observer observer : observers) {
            observer.update();
        }
    }

    // 营业逻辑
    public void doSomething() {
        // ...
        notifyObservers(); // 修正内部形态
        // ...
    }
}

// 利用事变驱动的系统布局的重构版原
public class EventFunction {

    private Publisher publisher = new Publisher();

    // 定阅事故
    public void subscribe(Consumer<Event> consumer) {
        publisher.subscribe(consumer);
    }

    // 领布变乱
    public void publishEvent(Event event) {
        publisher.publish(event);
    }

    // 营业逻辑
    public void doSomething() {
        // ...
        publishEvent(new Event()); // 没有修正内部状况
        // ...
    }
}
登录后复造

论断

经由过程明白没有肃肃取 Java 函数一路利用的计划模式,你否以编写更洁净、更否重用的代码。原文供给了替代圆案以及事例,帮手你重构现有代码并以函数式体式格局计划新的代码。

以上便是能否有一些计划模式没有恰当取 Java 函数一同应用?的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(42) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部