A. In this pattern, a class behavior changes based on its state.
B. In this pattern, a null object replaces check of NULL object instance
C. In this pattern, a class behavior or its algorithm can be changed at run time
D. In this pattern, an abstract class exposes defined way(s)/template(s) to execute its methods