// CharacterRemover.javapackageorg.stringops.questionmarkremover;publicinterfaceCharacterRemover{/**
* TODO
* @param String source TODO
* @return String TODO
*/publicStringremoveCharacter(Stringsource);}
// CharacterRemoverFactory.javapackageorg.stringops.questionmarkremover;publicinterfaceCharacterRemoverFactory{/**
* TODO
* @return CharacterRemover TODO
*/publicCharacterRemovercreateCharacterRemover();}
// QuestionMarkRemover.javapackageorg.stringops.questionmarkremover;importjava.io.StringReader;importjava.io.InputStreamReader;importjava.io.ByteArrayOutputStream;importjava.io.IOException;publicclassQuestionMarkRemoverimplementsCharacterRemover{/**
* TODO
* @param String source TODO
* @return String TODO
*/publicStringremoveCharacter(Stringsource){StringReaderreader=newStringReader(source);ByteArrayOutputStreamoutputStream=newByteArrayOutputStream();try{intdataFromReader=reader.read();while(dataFromReader!=-1){if(dataFromReader!='?'){outputStream.write(dataFromReader);}dataFromReader=reader.read();}}catch(IOExceptione){// TODO: handle the exception}byte[]byteArray=outputStream.toByteArray();returnnewString(byteArray);}}
// QuestionMarkRemoverFactory.javapackageorg.stringops.questionmarkremover;publicclassQuestionMarkRemoverFactoryimplementsCharacterRemoverFactory{/**
* TODO
* @return CharacterRemover TODO
*/publicCharacterRemovercreateCharacterRemover(){returnnewQuestionMarkRemover();}}
And to use it:
importorg.stringops.questionmarkremover.*;publicclassApp{/**
* TODO
* @param String[] args TODO
* @return void TODO
*/publicstaticvoidmain(String[]args){CharacterRemoverFactorycharacterRemoverFactory=newQuestionMarkRemoverFactory();CharacterRemovercharacterRemover=characterRemoverFactory.createCharacterRemover();System.out.println(characterRemover.removeCharacter("hello?"));}}
19 yo student *and* a full-time developer.
Building with Rails currently, exploring new frontiers.
I enjoy functional programming, Linux, FOSS, refactoring and mentoring :)
And to use it:
ENTERPRISE
NOOOO!!!
You need to create an instance of the
OpinionAboutJavaFactory
! You can just have a staticgetOpinionAboutJava
method! Now your code is not SOLID!