|
|
|
@ -6,46 +6,63 @@
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
classDiagram
|
|
|
|
|
class Contact {
|
|
|
|
|
- phone : String?
|
|
|
|
|
- telegram : String?
|
|
|
|
|
- email : String?
|
|
|
|
|
+ Contact(phone : String?, telegram : String?, email : String?)
|
|
|
|
|
+ valid_phone_number() : Boolean
|
|
|
|
|
+ valid_telegram() : Boolean
|
|
|
|
|
+ valid_email() : Boolean
|
|
|
|
|
+ present() : Boolean
|
|
|
|
|
+ info() : String
|
|
|
|
|
- validate_contacts()
|
|
|
|
|
+ new_from_info(info_string : String) : Contact
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Person {
|
|
|
|
|
+id: String
|
|
|
|
|
+git: String
|
|
|
|
|
-phone: String
|
|
|
|
|
-telegram: String
|
|
|
|
|
-email: String
|
|
|
|
|
+initialize(args: Hash)
|
|
|
|
|
+set_contacts(phone: String, telegram: String, email: String)
|
|
|
|
|
+git_present(): Boolean
|
|
|
|
|
+contact_present(): Boolean
|
|
|
|
|
+contact_info(): String
|
|
|
|
|
+valid_phone_number?(phone: String): Boolean
|
|
|
|
|
+valid_name?(name: String): Boolean
|
|
|
|
|
+valid_telegram?(telegram: String): Boolean
|
|
|
|
|
+valid_email?(email: String): Boolean
|
|
|
|
|
+valid_git?(git: String): Boolean
|
|
|
|
|
- id : String
|
|
|
|
|
- git : String
|
|
|
|
|
- contact : Contact
|
|
|
|
|
+ Person(id : String, git : String, contact : Contact)
|
|
|
|
|
+ git_present() : Boolean
|
|
|
|
|
+ contact_present() : Boolean
|
|
|
|
|
+ contact_info() : String
|
|
|
|
|
+ valid_git(git : String) : Boolean
|
|
|
|
|
+ valid_id(id : String) : Boolean
|
|
|
|
|
- validate_person()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Student {
|
|
|
|
|
+surname: String
|
|
|
|
|
+name: String
|
|
|
|
|
+patronymic: String
|
|
|
|
|
+initialize(args: Hash)
|
|
|
|
|
+from_string(student_string: String): Student
|
|
|
|
|
+read_from_txt(file_path: String): List~Student~
|
|
|
|
|
+write_to_txt(file_path: String, students: List~Student~)
|
|
|
|
|
+surname_and_initials(): String
|
|
|
|
|
+to_s(): String
|
|
|
|
|
+get_info(): String
|
|
|
|
|
class StudentRepository {
|
|
|
|
|
+ read_from_txt(file_path : String) : List~Student~
|
|
|
|
|
+ write_to_txt(file_path : String, students : List~Student~)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class StudentShort {
|
|
|
|
|
+surname_initials: String
|
|
|
|
|
+contact: String
|
|
|
|
|
+initialize(student: Student)
|
|
|
|
|
+from_string(id: String, info_string: String): StudentShort
|
|
|
|
|
- surname_initials : String
|
|
|
|
|
- contact : String
|
|
|
|
|
+ StudentShort(id : String, git : String, surname_initials : String, contact : Contact)
|
|
|
|
|
+ from_student(student : Student) : StudentShort
|
|
|
|
|
+ from_string(id : String, info_string : String) : StudentShort
|
|
|
|
|
+ to_s() : String
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Student {
|
|
|
|
|
- surname : String
|
|
|
|
|
- name : String
|
|
|
|
|
- patronymic : String
|
|
|
|
|
+ Student(id : String, git : String, contact : Contact, surname : String, name : String, patronymic : String)
|
|
|
|
|
+ from_string(student_string : String) : Student
|
|
|
|
|
+ surname_and_initials() : String
|
|
|
|
|
+ to_s() : String
|
|
|
|
|
+ get_info() : String
|
|
|
|
|
- validate_student()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Contact <|-- Person
|
|
|
|
|
Person <|-- Student
|
|
|
|
|
Person <|-- StudentShort
|
|
|
|
|
Student <.. StudentRepository
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
где + - public, - - private
|
|
|
|
|