From 4c5a410a674b733ad2ebcc5bb40b425dc8eb934b Mon Sep 17 00:00:00 2001 From: p46nuwtki <1577964316@qq.com> Date: Mon, 27 Oct 2025 11:13:19 +0800 Subject: [PATCH] ADD file via upload --- 进阶类图.puml | 79 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 进阶类图.puml diff --git a/进阶类图.puml b/进阶类图.puml new file mode 100644 index 0000000..1b01ea2 --- /dev/null +++ b/进阶类图.puml @@ -0,0 +1,79 @@ +@startuml 单一职责原则-进阶类图 + +skinparam backgroundColor white +skinparam handwritten false +skinparam monochrome false +skinparam shadowing false +skinparam roundcorner 8 +skinparam defaultFontName Microsoft YaHei +skinparam defaultFontSize 14 +skinparam packageStyle rectangle +skinparam package { + BackgroundColor LightGray + BorderColor Gray +} +skinparam class { + BackgroundColor White + BorderColor Black + ArrowColor Black +} + +package "com.company.employee.model" { + class Employee { + - id: String + - name: String + - age: int + - department: String + - salary: double + - hireDate: LocalDate + - email: String + - position: String + + getId(): String + + getName(): String + + getAge(): int + + getDepartment(): String + + getSalary(): double + + getHireDate(): LocalDate + + getEmail(): String + + getPosition(): String + + getYearsOfService(): int + } +} + +package "com.company.employee.search" { + class EmployeeSearch { + - employees: List + + EmployeeSearch(employees: List) + + searchByDepartment(department: String): List + + searchBySalaryRange(minSalary: double, maxSalary: double): List + + searchByHireDateRange(startDate: LocalDate, endDate: LocalDate): List + + searchByAgeRange(minAge: int, maxAge: int): List + + searchByNameContaining(keyword: String): List + + searchByPosition(position: String): List + + searchByMultipleConditions(department: String, minSalary: double, maxSalary: double): List + + getEmployees(): List + + setEmployees(employees: List): void + } +} + +package "com.company.employee.statistics" { + class EmployeeStatistics { + - employees: List + + EmployeeStatistics(employees: List) + + calculateAverageSalary(): double + + calculateAverageAge(): double + + calculateAverageServiceYears(): double + + getDepartmentEmployeeCount(): Map + + getSalaryDistribution(): Map> + + findHighestPaidEmployee(): Employee + + findLongestServingEmployee(): Employee + + generateStatisticsReport(): String + + setEmployees(employees: List): void + } +} + +' 关系:搜索和统计类都使用Employee +EmployeeSearch --> Employee +EmployeeStatistics --> Employee + +@enduml \ No newline at end of file