Minheap implementation with design patterns - iterator , strategy, decorator, filter, null object pattern