ADD file via upload

main
p46nuwtki 4 months ago
parent c93e918bfa
commit 4c5a410a67

@ -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<Employee>
+ EmployeeSearch(employees: List<Employee>)
+ searchByDepartment(department: String): List<Employee>
+ searchBySalaryRange(minSalary: double, maxSalary: double): List<Employee>
+ searchByHireDateRange(startDate: LocalDate, endDate: LocalDate): List<Employee>
+ searchByAgeRange(minAge: int, maxAge: int): List<Employee>
+ searchByNameContaining(keyword: String): List<Employee>
+ searchByPosition(position: String): List<Employee>
+ searchByMultipleConditions(department: String, minSalary: double, maxSalary: double): List<Employee>
+ getEmployees(): List<Employee>
+ setEmployees(employees: List<Employee>): void
}
}
package "com.company.employee.statistics" {
class EmployeeStatistics {
- employees: List<Employee>
+ EmployeeStatistics(employees: List<Employee>)
+ calculateAverageSalary(): double
+ calculateAverageAge(): double
+ calculateAverageServiceYears(): double
+ getDepartmentEmployeeCount(): Map<String, Integer>
+ getSalaryDistribution(): Map<String, List<Employee>>
+ findHighestPaidEmployee(): Employee
+ findLongestServingEmployee(): Employee
+ generateStatisticsReport(): String
+ setEmployees(employees: List<Employee>): void
}
}
' 关系搜索和统计类都使用Employee
EmployeeSearch --> Employee
EmployeeStatistics --> Employee
@enduml
Loading…
Cancel
Save