The standard placeholder definition and placeholder classes are usually sufficient to cater for most kinds of content ranging from HTML to XML. Usually, you would not need to write your own custom placeholder definition/placeholder pair.
Even if you do find a situation where you may need to modify the properties and attributes of the placeholder, customizing the placeholder control to massage the data as authors save or retrieve content for display would usually suffice.
The choice of implementation is yours. Generally it is more common to find solutions based on custom placeholder controls as they are easier to build and distribute than custom placeholder definitions and placeholders.
Consider writing a custom placeholder definition and/or placeholder when you want to:
Expand or change the list of constraints and properties of the basic placeholder definitions that ship with the product
Provide an API that includes the business logic to retrieve and...