C #: помочь понять << свойство >> в диаграммах классов UML

2

В настоящее время я делаю проект, в котором мы должны сделать код из диаграмм UML. Я понимаю анатомию диаграммы классов UML, но мне сложно понять, что означает <<property>> и как внедрить его в мой код.

Изображение 174551

Теги:
class
uml
diagram

2 ответа

4

<<property>> является стереотипом (как и большинство вещей в UML, охватываемых << >>). В этом случае это указывает на то, что вы должны реализовать методы получения и установки для соответственно названных частных атрибутов класса. Например, для Status вы бы реализовали getStatus и setStatus (или все, что используется на целевом языке для этой цели). Поскольку существует также ограничение { readonly } для Name вы просто должны реализовать getName. Вы, вероятно, должны догадаться, что имя атрибута _bookName.

  • 0
    Спасибо, я верю, что это ответ, я просто не мог обернуть голову вокруг этого. Последний вопрос, с которым я только что столкнулся; Когда я сталкиваюсь с методом в Book (), таким как ReturnBook (), он дает типы данных Timespan, int и decimal. Как можно назначить 3 типа данных для метода?
  • 0
    Это слишком сложно, чтобы ответить в комментарии. Пожалуйста, задайте новый вопрос для этого. Завтра посмотрю (если кто-то еще не ответит раньше).
Показать ещё 2 комментария
1

Поскольку вы пометили это как [C#], вы должны знать, что свойство является частью первого класса языка С#. Классы могут иметь свойства любого типа. Получатели и установщики могут иметь разные уровни доступа (например, получатель, общедоступный, в то время как установщик является частным). Доступны свойства только для чтения (без установщика) и только для записи (без установщика). Если у свойства есть тривиальное определение (получатель и установщик просто получают доступ к частному вспомогательному полю), тогда вы можете использовать автоматическое свойство с простым, простым в выражении и понимании синтаксисом.

class MyClass {
    //this is a simple property with a backing field
    private int _someInt = 0;
    public int SomeInt {
        get { return _someInt; }
        set { _someInt = value; }    //"value" is a keyword meaning the rhs of a property set expression
    }

    //this is a similar property as an "auto property", the initializer is optional
    public int OtherInt { get; set; } = 0;

    //this is an auto-property with a public getter, but a protected setter
    public string SomeString { get; protected set; }
}

Если метод установки (или метод получения) опущен, свойство становится доступным только для чтения (или только для записи).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню