Tutorial by Examples

Assuming a abstract class: class ILogger { virtual ~ILogger() = default; virtual Log(const std::string&) = 0; }; Instead of void doJob(ILogger* logger) { if (logger) { logger->Log("[doJob]:Step 1"); } // ... if (logger) { logge...
Given an interface: public interface Logger { void log(String message); } Rather than usage: public void doJob(Logger logger) { if (logger != null) { logger.log("[doJob]:Step 1"); } // ... if (logger != null) { logger.log("[doJob]:Step 2&q...

Page 1 of 1