如何"拒绝"实现一堂课

Hel*_*ang 3 c++ java

例如,

public class Test {
    Test() {
    if(xxx)//do some check here
        //reject instancing class test.
    }
}
Run Code Online (Sandbox Code Playgroud)

我想我可以抛出异常来拒绝它,还有其他办法吗?我不确定实例化的效果被拒绝了,但我认为一种自然的方式是:

Test test = new Test();//return null here indicating instancing rejected.
Run Code Online (Sandbox Code Playgroud)

我希望java和C++都应该具有这种"拒绝"功能.

pen*_*tur 7

如果要返回null,可以使用Factory模式.例如,Test test = new Test();您可以编写Test test = TestFactory.CreateTest();并实施所需的所有检查TestFactory.CreateTest.

new Test()始终返回非空实例Test(至少在Java中).