๐ย ์ค๋ ์ฝ์ ๋ฒ์ : 12. ์ฐฝ๋ฐ์ฑ(216~223p)
int size() {}
boolean isEmpty() {
return 0 == size();
}
public void scaleToOneDimension(
float desiredDimension, float imageDimension) {
if (Math.abs(desiredDimension - imageDimension) < errorThreshold) return;
float scalingFactor = desiredDimension / imageDimension;
scalingFactor = (float)(Math.floor(scalingFactor * 100) * 0.01 f);
RenderedOp newImage = ImageUtilities.getScaledImage(image, scalingFactor, scalingFactor);
image.dispose();
System.gc();
image = newImage;
}
public synchronized void rotate(int degrees) {
RenderedOp newImage = ImageUtilities.getRotatedImage(image, degrees);
image.dispose();
System.gc();
image = newImage;
}
scaleToOneDimension ๋ฉ์๋์ rotate ๋ฉ์๋๊ฐ ์ผ๋ถ ์ค๋ณต
public void scaleToOneDimension(
float desiredDimension, float imageDimension) {
if (Math.abs(desiredDimension - imageDimension) < errorThreshold) return;
float scalingFactor = desiredDimension / imageDimension;
scalingFactor = (float)(Math.floor(scalingFactor * 100) * 0.01 f);
replaceImage(ImageUtilities.getScaledImage(image, scalingFactor, scalingFactor));
}
public synchronized void rotate(int degrees) {
replaceImage(ImageUtilities.getRotatedImage(image, degrees));
}
private void replaceImage(RenderedOp newImage) {
image.dispose();
System.gc();
image = newImage;
}
public class VacationPolicy {
public void accrueUSDivisionVacation() {
// ์ง๊ธ๊น์ง ๊ทผ๋ฌดํ ์๊ฐ์ ๋ฐํ์ผ๋ก ํด๊ฐ ์ผ์๋ฅผ ๊ณ์ฐํ๋ ์ฝ๋ // ...
// ํด๊ฐ ์ผ์๊ฐ ๋ฏธ๊ตญ ์ต์ ๋ฒ์ ์ผ์๋ฅผ ๋ง์กฑํ๋์ง ํ์ธํ๋ ์ฝ๋ // ...
// ํด๊ฐ ์ผ์๋ฅผ ๊ธ์ฌ ๋์ฅ์ ์ ์ฉํ๋ ์ฝ๋
// ... }
public void accrueEUDivisionVacation() {
// ์ง๊ธ๊น์ง ๊ทผ๋ฌดํ ์๊ฐ์ ๋ฐํ์ผ๋ก ํด๊ฐ ์ผ์๋ฅผ ๊ณ์ฐํ๋ ์ฝ๋
// ...
// ํด๊ฐ ์ผ์๊ฐ ์ ๋ฝ์ฐํฉ ์ต์ ๋ฒ์ ์ผ์๋ฅผ ๋ง์กฑํ๋์ง ํ์ธํ๋ ์ฝ๋ // ...
// ํด๊ฐ ์ผ์๋ฅผ ๊ธ์ฌ ๋์ฅ์ ์ ์ฉํ๋ ์ฝ๋
// ...
}
}
}
abstract public class VacationPolicy {
public void accrueVacation() {
calculateBaseVacationHours();
alterForLegalMinimums();
applyToPayroll();
}
private void calculateBaseVacationHours() { /* ... */ };
abstract protected void alterForLegalMinimums();
private void applyToPayroll() { /* ... */ };
}
public class USVacationPolicy extends VacationPolicy {
@Override protected void alterForLegalMinimums() {
// ๋ฏธ๊ตญ ์ต์ ๋ฒ์ ์ผ์๋ฅผ ์ฌ์ฉํ๋ค. }
}
public class EUVacationPolicy extends VacationPolicy {
@Override protected void alterForLegalMinimums() {
// ์ ๋ฝ์ฐํฉ ์ต์ ๋ฒ์ ์ผ์๋ฅผ ์ฌ์ฉํ๋ค. }
}
}
}