 <p>Multiple inheritance can be used if the language allows it. I don't know much about it however.</p> <p>Otherwise, you can build a <code>StockItemNode : GraphicNode</code> from a <code>StockItem</code>: </p> <pre><code>class ItemNodeFactory { ... StockItemNode create(StockItem); ... } </code></pre> <p>You can transfer properties from <code>StockItem</code> into an instance of <code>StockItemNode</code> (set-get) which would completely decouple the two types. Or you can have <code>StockItemNode</code> wrap an instance of <code>StockItem</code> (composition).</p> <p>Doing it the other way around (having <code>NodeStockItem : StockItem</code> and/or wrapping a <code>GraphicNode</code> in a <code>StockItem</code>) would result in a particular bad design because you don't want to hardwire a coupling to a specific presentation (<code>GraphicNode</code>) inside a domain/business/data entity (<code>StockItem</code>).</p>