There are many different kinds of lists in computer programming. Some of them act like heaps of data, some like grocery lines, some like unending rings. Some lists you can only go forward in, some you can go backward as well. Here are some lists that Primus/Falcraft implements.
When you want to find an object you usually start with another object that has an association to it, and use the association to navigate to it. Thus, if you want to find all the orders for a customer, you start with the customer object and use a method on it to get the orders. However, in some cases you won’t have an appropriate object to start with.
A filter is a predicate data structure that compares values against some internal logic to see if they ‘pass through’ the filter or not.
In computer science, a set is an abstract data type that can store certain values, without any particular order, and no repeated values. It is a computer implementation of the mathematical concept of a finite set. Unlike most other collection types, rather than retrieving a specific element from a set, one typically tests a value for membership in a set.
The feature defines a static property for the using class. This static counter remains unique on each poll for a new identity (in this case it’s an integer). The $identityCounter must be ‘increasable’, that is, every time its accessed or ‘advanced’ it must be unique from all the identity values before it. Counting up is a very easy way to accomplish this.
For example, say you want some of your classes to be able to be configured and store configurations. You could have a base class that includes that feature and then, in a single inheritance system like PHP, have all classes inherit from that class so that they can contain default behaviors. The problem with this is that you end up implementing all the class ‘features’ on the base class creating bloat and unneeded complexity in the inheriting classes, particularly if only a subset of the classes inheriting need the feature.
Many individuals see the Singleton Pattern as an anti-pattern. That is, a tool used to make code less optimal. The biggest drawback I can see is in testing in particular. Singletons are not entirely without merit however. There are domains in which a singleton provides a convenient and modular answer. As OODesign.com points out, there may only be need for one window manager, one file system (like the OS X Finder), one print spool, one logging mechanism, one configuration resource, one database access point, etc.
Primus is a collection of libraries/components that are expected to work together to form a general artificial intelligence server/runtime environment. Deployment and application propositions include mobile robotics, information processing, pattern recognition, and social interaction simulations.