Какой метод ООП подойдет для свойств периодической таблицы? - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь закодировать в java любимый проект, используя периодическую таблицу.Какой лучший / эффективный способ сделать набор данных из свойств периодических элементов.Должен ли я сделать класс всех элементов в отдельности?или сделать массив или объекты?

Первоначально планировалось просто создать избыточные классы со свойствами для каждого отдельного элемента.(напр., класс для водорода, класс для углерода, класс для азота ... и т. д.).с каждым классом, имеющим такие атрибуты, как атомный номер, вес, имя и т. д. Это много работы, но интересно, есть ли эффективные способы LOL.Цель состоит в том, чтобы сделать это как можно более модульным, чтобы я мог добавить больше значений свойств или условий, если я решу это сделать

Я довольно новичок в Java, поэтому, пожалуйста, предложите что-нибудь.Также дайте мне знать, если кто-то уже сделал это или создал библиотеку для этого.:)

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Создайте один класс для химического элемента со всеми его свойствами.

Для категориальных свойств, таких как его группа; будь то металл (щелочь / лантаноид / ...) или благородный газ, или трансуран или что-то еще, вы можете либо добавить его в качестве поля, либо сохранить внешний набор из них, либо использовать наследование. Также возможно реализовать (маркерный) интерфейс Металл.

Наследование имеет смысл только для различного поведения, методов, в строгой иерархии. Даже Животное не должно наследоваться от SwimAnimal или FlyingAnimal, но должно реализовывать интерфейсы Swim и Flying, так как они могут быть обоими. Так что для групп Metal / Noble Gass / ... можно использовать наследование. Но цвет фона в периодической таблице для группы будет храниться в каждом случае. ИМХО это имеет смысл только если для Металла есть deriveSalt(...) и тому подобное. И этого я не вижу.

0 голосов
/ 28 мая 2019

Мне было интересно, почему бы вам не пойти с наследованием, создать класс с общими атрибутами, я имею в виду имя, атомный вес, имя и т. Д., И наследовать эти атрибуты там, где вы хотите ...

...