eXtropia Studios Software Development
Extreme Programming
Extreme Programming is a software engineering methodology, the most prominent of several agile software development methodologies, prescribing a set of daily stakeholder practices that embody and encourage particular XP values. Proponents believe that exercising these software engineering practices to so-called "extreme" levels leads to a development process that is more responsive to customer needs ("agile") than traditional programming methods, while creating software of better quality. Proponents of XP and agile methodologies in general regard ongoing changes to requirements as a natural, inescapable and desirable aspect of software development projects; they believe that adaptability to changing requirements at any point during the project life is a more realistic and better approach than attempting to define all requirements at the beginning of a project and then expending effort to control changes to the requirements.
Advantages of Design Patterns
Design patterns can speed up the development process by providing tested, proven development paradigms. Effective software design requires considering issues that may not become visible until later in the implementation. Reusing design patterns helps to prevent subtle issues that can cause major problems, and it also improves code readability for coders and architects who are familiar with the patterns.
Java Singleton
public class SingletonClass {
public static SingletonClass getInstance() {
if (SingletonClass.instance==null) {
SingletonClass.instance = new SingletonClass();
}
return SingletonClass.instance;
}
private SingletonClass() {
// private constructor prevents external instansiation
}
private static SingletonClass instance = null;
}
C++ Singleton
class SingletonClass {
public:
static SingletonClass* getInstance();
private:
SingletonClass(); // private constructor
static SingletonClass* instance;
};
SingletonClass* SingletonClass::getInstance()
{
if (!instance) {
instance = new SingletonInstance();
}
return instance;
}
SingletonClass* SingletonClass::instance = 0;
Creating Object Oriented Database Interfaces in PHP5
interface RecordSet {
public function fetch();
public function fetchAssociative();
public function fetchObject();
public function getFieldSpecifications();
}
interface RecordSetBuffered extends RecordSet {
public function numRows();
public function numColumns();
public function setCursor();
public function getCursor();
}