미운 오리 새끼의 우아한 개발자되기

[Java] 객체지향 5원칙 - Single Responsibility Principle 본문

Java/Java 기본기

[Java] 객체지향 5원칙 - Single Responsibility Principle

Serina_Heo 2021. 12. 5. 16:54

객체지향 5원칙 (SOLID)

1. Single Responsibility Principle 

2. Open /Closed Principle

3. Liskov Substitution Principle

4. Interface Segregation Principle

5. Dependency Inversion Principle

 

Single Responsibility Principle(SRP) states that a software component (in general, a class)

must have only one responsibility. 

A class should have only one reason to change.

 

1. Before applying SRP 

Product.java

public class Product {

    String productName;
    Integer productId;

    public String getProductName(){
        return productName;
    }

    public void setProductName(String productName){
        this.productName = productName;
    }

    public Integer getProductId(){
        return productId;
    }

    public void setProductId(Integer productId){
        this.productId = productId;
    }
    
    public void searchProduct(Product product){
        //search product logic goes here
    }

}

 

2. After applying SRP 

Product.java

public class Product {

    String productName;
    Integer productId;

    public String getProductName(){
        return productName;
    }

    public void setProductName(String productName){
        this.productName = productName;
    }

    public Integer getProductId(){
        return productId;
    }

    public void setProductId(Integer productId){
        this.productId = productId;
    }

}

ProductRepositoryView.java

public class ProductRepositoryView {

    Product product;

    public ProductRepositoryView(Product product){
        this.product = product;
    }

    public void searchProduct(){
        //logic to search product goes here
    }

}

 

3. Benefits of SRP

1. Easier to understand

2. Easier to maintain 

3. Fewer defects

4. Easier to test