Do you think this design pattern is good for game portal content management system
ArrayList&lt;...&gt; reference types should be simply List&lt;...&gt;. See: Effective Java, 2nd edition, Item 52: Refer to objects by their interfaces

List&lt;GamePlatform&gt; gamePlatforms;

I'd consider using BigDecimal instead of int price. It can store numbers like $1.99.
I'd rename PCPlatform to PcPlatform. From Effective Java, 2nd edition, Item 56: Adhere to generally accepted naming conventions: 


  While uppercase may be more common, 
  a strong argument can made in favor of capitalizing only the first 
  letter: even if multiple acronyms occur back-to-back, you can still 
  tell where one word starts and the next word ends. 
  Which class name would you rather see, HTTPURL or HttpUrl?

The PlatformType enum seems as a duplication here and if I'm right it's purpose is to use it in switch-case statements. Consider polymorphism here. I'd put a public abstract String getPlatformName() method in the GamePlatform class and remove PlatformType completely. Two might be useful reading:


Refactoring: Improving the Design of Existing Code by Martin Fowler: Replacing the Conditional Logic on Price Code with Polymorphism
Replace Conditional with Polymorphism

Constructor parameters should be validated. Does it make sense to create a GamePlatform with null or empty string name? If not, check it and throw a NullPointerException or an IllegalArgumentException. (Effective Java, Second Edition, Item 38: Check parameters for validity)