UML (Unified Modeling Language) เป็นภาษาการสร้างแบบจำลองแบบครบวงจร ฉันเรียนรู้เกี่ยวกับ UML จากเรื่องราวในฟอรัมที่ยอดเยี่ยมโดยalex8894 การทบทวนเครื่องมือ CASE สำหรับการสร้างไดอะแกรม UML เท่าที่ฉันเข้าใจหนังสือ “ UML สำหรับโปรแกรมเมอร์ Java ” โดย Robert Cecil Martin ใช้มาตรฐาน UML 1 เนื่องจาก UML ปัจจุบันมีผลบังคับใช้หลังจากการตีพิมพ์ อย่างไรก็ตาม ฉันเชื่อว่าหลักการพื้นฐานของการสร้างบล็อกไดอะแกรมดังกล่าวยังคงไม่มีการเปลี่ยนแปลงที่สำคัญ ตัวอย่างการสอนจากการบรรยาย:
/*
* (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): มันน่าสนใจที่จะเห็น และ เปรียบเทียบกับไดอะแกรม UML/ไดอะแกรมของ Intellij IDEA เดียวกันที่จะสร้างโปรแกรม
GO TO FULL VERSION