I would definitely suggest implementing a very simple state machine for your enemies, it'll take a little more time than simply keeping track of a following time variable, but it will be a lot more scalable later when you're doing more complex things.
You should be able to find a ton of references for state machines with some searching, but the general idea would be that the Enemy class keeps some kind of EnemyState object, and the Enemy Update function would simply call the state update function. From your example, states would be something like:
Patrol - Simply checks if the player is close enough. If so, switch to Follow state
Follow - Move closer to the player. If the follow time has elapsed, or if the player has gotten too far away, return to Patrol.
Combat - Not sure if this would be required for your game, but could transition to this if it catches the player. Handles attacking / defending / whatever.
All these states would subclass from the base EnemyState and would have an Update function and probably an OnEnter and OnExit to do whatever kind of initialization / cleanup that needs done upon switching states.