ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/tengDissertation/Appendix.tex
(Generate patch)

Comparing trunk/tengDissertation/Appendix.tex (file contents):
Revision 2831 by tim, Thu Jun 8 21:02:53 2006 UTC vs.
Revision 2832 by tim, Thu Jun 8 21:09:22 2006 UTC

# Line 132 | Line 132 | class IntegratorFactory {
132   \begin{lstlisting}[float,caption={[A classic Singleton design pattern implementation(I)] Declaration of {\tt IntegratorFactory} class.},label={appendixScheme:singletonDeclaration}]
133  
134   class IntegratorFactory {
135 <  public:
136 <    static IntegratorFactory* getInstance();
137 <    protected:
138 <      IntegratorFactory();
139 <    private:
140 <      static IntegratorFactory* instance_;
135 > public:
136 >  static IntegratorFactory*
137 >  getInstance();
138 > protected:
139 >  IntegratorFactory();
140 > private:
141 >  static IntegratorFactory* instance_;
142   };
143  
144   \end{lstlisting}
# Line 176 | Line 177 | class IntegratorFactory {
177   \begin{lstlisting}[float,caption={[The implementation of Factory pattern (I)].},label={appendixScheme:factoryDeclaration}]
178  
179   class IntegratorFactory {
180 <  public:
181 <    typedef std::map<string, IntegratorCreator*> CreatorMapType;
180 > public:
181 >  typedef std::map<string, IntegratorCreator*> CreatorMapType;
182  
183 <    bool registerIntegrator(IntegratorCreator* creator) {
184 <      return creatorMap_.insert(creator->getIdent(), creator).second;
185 <    }
183 >  bool registerIntegrator(IntegratorCreator* creator) {
184 >    return creatorMap_.insert(creator->getIdent(), creator).second;
185 >  }
186  
187 <    Integrator* createIntegrator(const string& id, SimInfo* info) {
188 <      Integrator* result = NULL;
189 <      CreatorMapType::iterator i = creatorMap_.find(id);
190 <      if (i != creatorMap_.end()) {
191 <        result = (i->second)->create(info);
191 <      }
192 <      return result;
187 >  Integrator* createIntegrator(const string& id, SimInfo* info) {
188 >    Integrator* result = NULL;
189 >    CreatorMapType::iterator i = creatorMap_.find(id);
190 >    if (i != creatorMap_.end()) {
191 >      result = (i->second)->create(info);
192      }
193 +    return result;
194 +  }
195  
196 <  private:
197 <    CreatorMapType creatorMap_;
196 > private:
197 >  CreatorMapType creatorMap_;
198   };
199   \end{lstlisting}
200   \begin{lstlisting}[float,caption={[The implementation of Factory pattern (III)]Souce code of creator classes.},label={appendixScheme:integratorCreator}]
201  
202   class IntegratorCreator {
203 <  public:
203 > public:
204      IntegratorCreator(const string& ident) : ident_(ident) {}
205  
206      const string& getIdent() const { return ident_; }
207  
208      virtual Integrator* create(SimInfo* info) const = 0;
209  
210 <  private:
210 > private:
211      string ident_;
212   };
213  
214 < template<class ConcreteIntegrator>
215 < class IntegratorBuilder : public IntegratorCreator {
216 <  public:
217 <    IntegratorBuilder(const string& ident) : IntegratorCreator(ident) {}
218 <    virtual  Integrator* create(SimInfo* info) const {
219 <      return new ConcreteIntegrator(info);
220 <    }
214 > template<class ConcreteIntegrator> class IntegratorBuilder : public
215 > IntegratorCreator {
216 > public:
217 >  IntegratorBuilder(const string& ident)
218 >                     : IntegratorCreator(ident) {}
219 >  virtual  Integrator* create(SimInfo* info) const {
220 >    return new ConcreteIntegrator(info);
221 >  }
222   };
223   \end{lstlisting}
224  
# Line 242 | Line 244 | class BaseVisitor{
244   \begin{lstlisting}[float,caption={[The implementation of Visitor pattern (I)]Source code of the visitor classes.},label={appendixScheme:visitor}]
245  
246   class BaseVisitor{
247 <  public:
248 <    virtual void visit(Atom* atom);
249 <    virtual void visit(DirectionalAtom* datom);
250 <    virtual void visit(RigidBody* rb);
247 > public:
248 >  virtual void visit(Atom* atom);
249 >  virtual void visit(DirectionalAtom* datom);
250 >  virtual void visit(RigidBody* rb);
251   };
252  
253   \end{lstlisting}
# Line 253 | Line 255 | class StuntDouble {
255   \begin{lstlisting}[float,caption={[The implementation of Visitor pattern (II)]Source code of the element classes.},label={appendixScheme:element}]
256  
257   class StuntDouble {
258 <  public:
259 <    virtual void accept(BaseVisitor* v) = 0;
258 > public:
259 >  virtual void accept(BaseVisitor* v) = 0;
260   };
261  
262   class Atom: public StuntDouble {
263 <  public:
264 <    virtual void accept{BaseVisitor* v*} {
265 <      v->visit(this);
266 <    }
263 > public:
264 >  virtual void accept{BaseVisitor* v*} {
265 >    v->visit(this);
266 >  }
267   };
268  
269   class DirectionalAtom: public Atom {
270 <  public:
271 <    virtual void accept{BaseVisitor* v*} {
272 <      v->visit(this);
273 <    }
270 > public:
271 >  virtual void accept{BaseVisitor* v*} {
272 >    v->visit(this);
273 >  }
274   };
275  
276   class RigidBody: public StuntDouble {
277 <  public:
278 <    virtual void accept{BaseVisitor* v*} {
279 <      v->visit(this);
280 <    }
277 > public:
278 >  virtual void accept{BaseVisitor* v*} {
279 >    v->visit(this);
280 >  }
281   };
282  
283   \end{lstlisting}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines