JavaRush /Java Blog /Random-KO /Java ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ์— UML ์‚ฌ์šฉ
Javin
๋ ˆ๋ฒจ 7
Stockholm

Java ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ์— UML ์‚ฌ์šฉ

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
UML (Unified Modeling Language)์€ ํ†ตํ•ฉ ๋ชจ๋ธ๋ง ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” alex8894 ์˜ UML ๋‹ค์ด์–ด๊ทธ๋žจ ๊ตฌ์„ฑ์„ ์œ„ํ•œ CASE ๋„๊ตฌ ๊ฒ€ํ†  ์˜ ๋ฉ‹์ง„ ํฌ๋Ÿผ ์Šคํ† ๋ฆฌ์—์„œ UML์— ๋Œ€ํ•ด ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค . ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ, Robert Cecil Martin์ด ์“ด " UML for Java Programmers "๋ผ๋Š” ์ฑ…์€ ํ˜„์žฌ UML์ด ์ถœํŒ๋œ ํ›„ ๋ฐœํšจ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— UML 1 ํ‘œ์ค€์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๊ทธ๋Ÿฌํ•œ ๋ธ”๋ก ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ ์›์น™์€ ํฐ ๋ณ€ํ™” ์—†์ด ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜์—ˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. Java ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ์— UML ์‚ฌ์šฉ - 1๊ฐ•์˜์˜ ๊ต์œก ์˜ˆ:
/*
 * (c) Volodya Mozhenkov 2015
 * GPL version 3.0
 * Almost University http://www.almost-university.com/
 * VladimirMozhenkov@yahoo.com
 *
 */
// ั„ะฐะนะป Main.java
public class Main
{
    private static void printRes(MyResult r)
    {
        if(r.hasResult())
        {
            System.out.print("ะ ะตะทัƒะปัŒั‚ะฐั‚ ะธัะฟะพะปะฝะตะฝะธั: ");
            System.out.println(r.getResult());
        }
        else
        {
            System.out.println("ะ ะตะทัƒะปัŒั‚ะฐั‚ ะพั‚ััƒั‚ัั‚ะฒัƒะตั‚");
        }
    }
    public static void main(String[] args)
    {
        MyCalculator c1 = new MyCalculator('/');
        MyResult r = c1.calculate(4, 2);
        printRes(r);
        r = c1.calculate(40, 13);
        printRes(r);
        r = c1.calculate(1, 0);
        printRes(r);

        c1 = new MyCalculator('^');
        r = c1.calculate(2, 25);
        printRes(r);
    }
}

// ั„ะฐะนะป MyCalculator.java
public class MyCalculator
{
    private class ResultClass implements MyResult
    {
        boolean valid;
        int result = 0;
        public ResultClass()
        {
            valid = false;
        }
        public ResultClass(int result)
        {
            this.result = result;
            valid = true;
        }
        public int getResult()
        {
            return result;
        }
        public boolean hasResult()
        {
            return valid;
        }
    }
    private char operation;

    public MyCalculator(char operation)
    {
        this.operation = operation;
    }

    public MyResult calculate(int a, int b)
    {
        MyResult res;

        switch(operation)
        {
            case '*':
                res = new ResultClass(a*b);
                break;
            case '/':
                if(b!=0)
                {
                    res = new ResultClass(a/b);
                }
                else
                {
                    res = new ResultClass();
                }
                break;
            case '+':
                res = new ResultClass(a+b);
                break;
            case '-':
                res = new ResultClass(a-b);
                break;
            default:
                res = new ResultClass();
                break;
        }
        return res;
    }
}

// ั„ะฐะนะป MyResult.java
public interface MyResult
{
    public int getResult();
    public boolean hasResult();
}
๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฌด๋ฃŒ ๋ฒ„์ „ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋งˆํŠธํฐ์— ์ด ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹ค์Œ ๋ธ”๋ก ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋น ๋ฅด๊ฒŒ ๊ทธ๋ ธ์Šต๋‹ˆ๋‹ค(๋ฌผ๋ก  UML์— ๋ง‰ ๊ด€์‹ฌ์„ ๊ฐ–๊ธฐ ์‹œ์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๋„ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค) Java ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ์— UML ์‚ฌ์šฉ - 2. ๋™์ผํ•œ Intellij IDEA์˜ UML ๋‹ค์ด์–ด๊ทธ๋žจ/๋‹ค์ด์–ด๊ทธ๋žจ์ด ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„๊ตํ•ด ๋ณด์„ธ์š”.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION