Clean Code Study Notes 2

1560 단어
당신이 그것이 적절하다고 생각하지 않는 한 switch를 최대한 적게 사용하세요.
메모
주석이 아닌 코드 자체로 의도를 표현하다.
엉터리 코드는 주석을 필요로 하지 않아도 소용없다.
주석을 읽는 시간이 코드를 읽는 것보다 더 길게 하지 마라.
문장의 오른쪽에 주석을 달고 싶을 때마다 이 함수를 줄여야 하는지 먼저 생각해 보세요.
프로세스 지향 또는 객체 지향
public class Square {
	public Point topLeft;
	public double side;
}

public class Circle {
	public Point center;
	public double radius;
}

public class Shape {
	public final double PI = 3.14;
	public double area(Object shape) throws NosSuchShapeException {
		if (shape instanceof Square) {
			Square s = (Square)shape;
			return s.side * s.side;
		} else if (shape instanceof Circle) {
			Circle c = (Circle)shape;
			return PI * c.radius * c.radius;
		}
		throw new NosSuchShapeException;
	}
}

여기서 클래스는 구조체, 데이터 구조로 더욱 여겨져야 한다.
관련 함수를 클래스에 봉하지 않고 아레아 함수 처리에 통일적으로 맡긴다.
instanceof는 switch의 업그레이드 버전처럼 동급 분포 처리 각 데이터 구조입니다.프로세스에 클래스를 추가하는 것은 매우 번거로우므로,area 함수를 수정해야 합니다.
그러나 함수를 추가하는 것은 매우 깨끗하다. 예를 들어 둘레를 구하는 함수이다.
public class Square implements Shape {
	private Point topLeft;
	private double side;
	public double area() {
		return side*side;
	}
}
public class Circle implements Shape {
	private Point center;
	private double radius;
	public final double PI = 3.14;
	public double area() {
		return PI * radius * radius;
	}
}

그에 비해 지금은 면형 대상의 형식을 선호한다.
하나, PI의 귀속은 더 이상 어색하지 않을 것이다.Circle 소유.
둘째, NoSuch 이상, 필요 없어요.
이런 형식하에서 하나의 종류를 첨가하는 것은 매우 깨끗하다.
함수를 추가하려면 모든 클래스를 수정해야 합니다.
어떻게 선택하느냐는 네가 어떤 형식의 결합을 필요로 하느냐에 달려 있다.

좋은 웹페이지 즐겨찾기