当前位置:Java -> 简化Java:减少不必要的层和接口[视频]

简化Java:减少不必要的层和接口[视频]

Java, 以其多功能性和健壮性而闻名,但对于其冗长而受到批评。然而,有必要认识到,Java被视为冗长并非总是语言本身的缺陷,而可以归因于代码设计中的过度工程化。在本文中,我们将探讨简化Java代码的好处,通过减少不必要的层和接口,解锁简单性的力量,以增强可维护性,同时不牺牲功能性。

不必要接口的陷阱

导致代码复杂性的一种常见做法是创建没有明确目的的接口。考虑一个经典案例,即为一个实现创建一个接口:

public interface CreditCard {
    String payment();
}

public class CreditCardImpl implements CreditCard{
    String payment();
}


不必要接口的第一个迹象是生成一个不具有意义的名称,违背了罗伯特·马丁提倡的《代码整洁之道》的原则。相对于创建单独的接口和实现,更简单的方法是让一个类处理两者:

public class CreditCard {
    public String payment() {
        return "Payment done!";
    }
}


通过消除不必要的接口,代码变得更为简洁,并符合清晰和简单的原则。

明智选择接口

接口 在Java中是强大的工具,但应谨慎使用。实现设计模式(如策略模式)是接口使用的一个有效案例。例如,您可能在支付系统中有各种策略,如信用卡支付、借记卡支付等。在这种情况下,接口可以帮助定义一个公共契约:

public interface Payment {
    String payment();
}

public class CreditCard implements Payment {
    public String payment() {
        return "Credit card payment done!";
    }
}

public class DebitCard implements Payment {
    public String payment() {
        return "Debit card payment done!";
    }
}


在这里,接口为不同的支付策略提供了统一的结构。

不必要的层的困境

代码设计中的另一个陷阱涉及创建没有明确目的的不必要层,它们只是作为简单的传递,增加了复杂性但没有提供实际的好处。考虑一种情况,引入了额外的层而没有明确的目的:

public class PaymentGateway {
    private CreditCard creditCard;

    public PaymentGateway(CreditCard creditCard) {
        this.creditCard = creditCard;
    }

    public String processPayment() {
        // Some processing logic
        return creditCard.payment();
    }
}


在没有明显意义的情况下,建议移除额外的层,简化代码并提高其清晰度:

public class PaymentProcessor {
    private CreditCard creditCard;

    public PaymentProcessor(CreditCard creditCard) {
        this.creditCard = creditCard;
    }

    public String processPayment() {
        // Processing logic directly in the class
        return creditCard.payment();
    }
}


消除不必要的层使代码更易于维护。

拥抱简单性以增强可维护性

总之,解锁Java的全部潜力的关键在于拥抱简单性。避免不必要的接口和层,它们增加了复杂性但没有提供明显的好处。明智选择接口,利用它们来增强代码结构,例如实现设计模式。通过简化你的Java代码,您可以提高其可读性和可维护性,确保更高效和愉快的开发过程。

视频


推荐阅读: 23.Redis是如何保证主从服务器一致处于连接状态以及命令是否丢失?

本文链接: 简化Java:减少不必要的层和接口[视频]