Conditional tags inside a class

Your real problem is the god class. You put rendering, sanitation, validation, saving and fetching data, and registration into one class.
Separate your tasks to make it it OOP, and let the main class be a very simple front controller that handles the initial registration only.

Here is a rough start, illustrating how I would do that:

// validate nonces
interface PG_Nonce_Validator_Interface {
    public function is_valid();
    public function get_name();
    public function get_action();
}
class PG_Nonce_Validator implements PG_Nonce_Validator_Interface {
    public function __construct( $base_string ) {}
    public function is_valid() {}
    public function get_name() {}
    public function get_action() {}
}

// validate request for the action 'save_post'
interface PG_Request_Validator_Interface {
    public function is_valid();
}
class PG_Save_Post_Validator implements PG_Request_Validator_Interface {
    public function __construct( PG_Nonce_Validator_Interface $nonce_validator ) {}
    public function is_valid() {}
}

// sanitation
interface PG_Sanitize_Data_Interface {
    public function sanitize( $data );
}
class PG_Sanitize_Data implements PG_Sanitize_Data_Interface {
    public function sanitize( $data ) {}
}

// data access
interface PG_Data_Interface {
    public function save( $data );
    public function get();
}
class PG_Option_Data implements PG_Data_Interface {
    public function __construct( $option_name ) {}
    public function save( $data ) {}
    public function get() {}
}

interface PG_View_Interface {
    public function render();
}

interface PG_Event {
    public function trigger( $name, $data = NULL );
}

class PG_Settings_Page implements PG_View_Interface {

    public function __construct() {

    }

    public function render() {}
}


class PG_Custom_Sidebars {

    private $option_name="cspp_get_option";

    // we do not run methods automatically in a constructor
    public function setup() {

        if ( is_admin() )
            $this->register_admin_actions();

        add_action( 'widgets_init', array( $this, 'register_sidebars' ) );
    }

    public function register_sidebars() {}

    private function register_admin_actions() {

        $nonce             = new PG_Nonce_Validator( 'pg_nonce' );
        $request_validator = new PG_Save_Post_Validator( $nonce );
        // and so on …
    }
}

$pg_custom_sidebars = new PG_Custom_Sidebars;
$pg_custom_sidebars->setup();

You can find examples for similar classes in Multilingual Press:

The basic idea is: load and instantiate only the code you actually need. Keep your classes as small as possible, keep them testable.

A View class should never know when it has to show something, just what (a title, a description, a submit button). And it shouldn’t even know where the data comes from.

Maybe you want to store the data in a user meta field later, not in an option? Just create a new concrete implementation for PG_Data_Interface and call that in your controller – without touching any of the other classes.