일일 코드 - 6/27 불법 대상 만들기 방지
2071 단어 대상
public class BuyerHelper
{
private static final UserRepository userRepository;
public static void createAndCheckBuyer(Cart cart)
{
int userId = cart.getUserId();
User user = userRepository.getUserById(userId);
Buyer buyer = BuyFactory.createFrom(user);
BaseCheckResult checkResult = BuyerChecker.checkBuyerPermission(buyer);
if (checkResult.isSuccess())
cart.setBuyer(buyer);
else
throw new InvaildBuyerException();
}
}
다음과 같은 문제가 있는 간단한 코드 세그먼트
1. 책임이 명확하지 않다.
이 방법은 사용자가 합법적인 바이어인지 검증하는 기능을 포함할 뿐만 아니라, 사용자에 따라 바이어를 만드는 기능을 실현할 뿐만 아니라, 매우 위험한 기능도 숨겼으며, 이 만들어진 바이어를 카드의 속성에 설정하는 것도 책임진다.한편, 카트는 외부 매개 변수이다. 이것은 후속 코드에서 카트에 추가된 바이어 속성에 의존할 가능성이 높다는 것을 의미한다. 이 점은 사실 비교적 은밀하다.
2. 불법 객체를 작성합니다.
이 방법이 실현된 기능은 한 사용자가 효과적인 구매자인지 아닌지를 판단하는 것이다. 이론적으로 말하자면 만약에 한 사용자가 효과적인 구매자가 아니라면 구매자 대상이 나타나지 말아야 한다.그러나 이 코드에서 Buyer 대상을 무작정 만들고 검증하는 것이 확실합니다.우리는 반드시 힘껏 불법 대상을 만드는 것을 피해야 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
List 컬렉션 객체에서 서로 다른 속성 크기로 정렬된 인스턴스인스턴스는 다음과 같습니다. 테스트: 출력 결과는 다음과 같습니다. 두 번째 방법은 컬렉션에 따라.sort 재부팅 방법(예: 마스터 클래스에서 이렇게 작성하면 됩니다. 출력 결과는 다음과 같습니다. 전자의 코드 구조...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.