Code Smell 131 - 인수가 없는 생성자

6457 단어
인수 없이 생성된 객체는 종종 변경 가능하고 불규칙합니다.

TL;DR: Pass all your essential arguments when creating objects.



문제


  • 빈혈 모델

  • 솔루션


  • 하나의 완전한 단일 생성자를 사용하십시오.
  • 피하고

  • 문맥



    인수가 없는 생성자와 여러 setter를 사용하여 변경하는 것이 일반적입니다.

    Beans은 이 코드 악취의 잘 알려진 예입니다.

    샘플 코드



    잘못된




     public Person();
    
    // Anemic and mutable
    

    오른쪽



    public Person(String name, int age){
         this.name = name;
         this.age = age;
         } 
     }
    
    // We 'pass' the essence to the object 
    // So it does not mutate
    

    발각



    [X] 자동

    우리는 모든 생성자를 확인할 수 있지만 일부 잘못된 긍정이 있습니다.

    상태 비저장 개체는 유효한 예입니다.

    태그


  • 가변성

  • 결론



    빈 생성자는 가변성 힌트 및 우발적 구현 문제입니다.

    솔루션을 개선하기 위해 용도를 조사해야 합니다.

    처지
















    더 많은 정보


  • Nullary Constructor

  • 학점



    사진 제공: Ade Adebowale on Unsplash


    Don't worry about design, if you listen to your code a good design will appear...Listen to the technical people. If they are complaining about the difficulty of making changes, then take such complaints seriously and give them time to fix things.



    마틴 파울러






    이 기사는 CodeSmell 시리즈의 일부입니다.


    좋은 웹페이지 즐겨찾기