Analise de um Diagrama de Classes [+opiniões]

Queria uma ajuda pra vocês, oque ocorre é que estou fazendo um software pra um amigo meu e ele quer um software pra criação de personagem de RPG.

Aí um personagem tem uma raça, uma classe, skills, feats, magias, itens e etc.

Vou usar um banco de dados pra armazenar as feats, magias e etc. Montei esse esquema de classes aqui, queria que alguém que manja desse uma idéia se esse seria o melhor esquema pro projeto, se não poderia fazer de um jeito mais orientado a objetos ou organizado. E também se seria possivel o uso de algum padrão de design com interfaces e tal. Queria ver se conseguia aplicar isso nesse projeto, mas também não tenho certeza se é necessário pois comecei a estudar agora e tal.

Ta aí o diagrama de classes:

Dá para ter diversas abordagens…

Como vc vai distinguir entre uma Class e outra? O mesmo vale para Race…

Eu utilizaria herança ai… e varia Class e Race serem uma Interface. Ai teriamos vários subtipos de Races e Classes:

Races: Ex: Orc, Human…
Classes: Warrior, Wizard…

Ex de métodos que podem possuir regras diferentes…

interface Race
{
    List<Skill> getAvaliableSkills(); 
}

O que são feats?

Feats são talentos, especializações. Tipo lutar com 2 armas, especializacao em espada longa e etc.

A minha idéia é que assim, um personagem só pode ter uma raça e 2 classes (eu acho). Aí teria um banco de dados com os atributos e peculiaridades de cada raca e quando ele selecionasse eu setaria aqueles atributos do banco na ficha do personagem. Pois raça influencia em força e skills e bonus feats e tal.

Será que pra itens não faria mais sentido uma interface?
:shock:

up
:frowning:

Eu faria como sendo uma classe mesmo…

Evitaria ter que implementar métodos comuns a todos os itens.