Following the tenets of XP with particular emphasis on Liskov's Substitution Principle:
The 'God Object Derivation' (GOD) is a base class with one subclass called Avatar (with an alias of Prophet). Common instances of GOD are Jehovah, God, Allah, Brahma, Ra etc. A collection pattern has been used that is called Pantheon.
The Avatar subclass extends GOD to allow continuous physical manifestations in the real world. Examples of Avatar include Jesus, Mohammad, Moses, Buddha and Krisna.
Although all of the methods of GOD are available to an Avatar it is common practice for an Avatar to refuse access to them until the moment of, or shortly following, the death of the Avatar instance.
Although communication and navigation methods within an Avatar are always available most of the so called 'Mysterious' methods are actually deferred until destruction of the instance. On rare occasions however, such as when participating in Wedding transactions or attempting to navigate a Red-Sea relationship, the Avatar can allow immediate access to GODs base methods.
If a call to GOD causes an exception then a Retribution event is fired. This is normally a call-back on the invoker.
GODs methods are mostly protected and are therefore only accessible to Friends or clients who subscribe to the pantheon container's event model and who agree to support that pantheon's constructor methodology. In fact, subscription to a particular creation pattern is normally a precondition for relationship with a pantheon, although temporary relationships are possible if the client wishes to postpone imminent destruction.
From a client's point of view an Avatar is a subtype of GOD and is always substitutable in any case where GOD is expected. Often an Avatar is preferred because clients often aren't really sure which method they need to call and an Avatar often has various mitigation techniques which aren't available to the more restricted GOD.
-- BryanDollery (This is intended as humour, if you are offended then you have my apologies, and anyway, YOU can FORGIVE ME) ;)
I have no objections to your attempt at humor; however, God object is a technical term to some. It is the object that sits at the top of a class hierarchy ( TObject, Object etc. ), usually specified by the language. So this might be appropriate under some other topic. -- ThaddeusOlczyk
Actually I have never heard the term GodObject before in the terms you are describing here. I've heard this referred to as the MostBaseObject? or just by the name that the particular single inheritance language dictates. The only languages I can think of that force this are Visual Basic, Java and Object Pascal, although there are probably others. I also believe that, as we are humans not machines, there is room for humour everywhere, especially in the dry domain of IT. -- BryanDollery
I see Moses as more an instance of the ProphetClass? which is a subclass of MereHumanBeing but suffers Calls from a GodObject that have to be transmitted to others. -- DickBotting
Blasphemy, as I mentioned earlier Prophet is simply an alias for Avatar, not an associate of GOD. This is modelled on reality where the commonality from the extensions (Moses, Mohammad and Jesus) was abstracted out into a class (Avatar) which it was discovered was substitutable for GOD in worship methods and in requests for Intervention. Upon further analysis it was discovered that the methods often classified as miracles were common to both, but were truly the domain of the base-class GOD. We could have modelled the theology domain model with miracles as a mixin type for the otherwise independent GOD and Avatar classes but we felt that this overlooked the worship abstraction and the common view that the instance of GOD called God-The-Father, and the instance of Avatar called ?God-The-Son? are mystically combined with infrastructure (called ?God-The-Holy-Spirit?) to form a single object called ?The-Holy-Trinity?. As this single object has three interfaces we thought it appropriate to separate these through inheritance to increase code reuse and through sub-typing to facilitate polymorphism into the structure you see today. -- BryanDollery
I see the Trinity as more of a 3-tier model, with a "God-the-Son" Pantheon (presentation tier) to offer each group of us our own Avatar object(familiar interface). The Avatar's dip in the pooled waters of the "Holy Spirit" middle-tier to communicate on our behalf with God-the-Father who is always busy figuring out the best way to give it to us in the Back-end. -- SeanMcCallum
You are mixing models. Christians would agree that Jesus is an avatar, but not that Moses or Muhammed are. Muslims would not agree that any are. As in any modeling situation, you need to define the point of view from which you are modeling and the purpose of the model.
BryanDollery: this is a great donation to spiritually minded programmers. I can't see any blasphemy in it. On the contrary, your love of GOD is deeply integrated with your good humour and your daily life as a programmer. Striving for universal compatibility (love+wisdom) is the main ethical principle, as I read it in the Bible and other Holy Scripts and as I feel it realized in your words. I think this is made for optimization of life of HumanBeings and beyond. Please make a public backup of your contribution to CritLink. See also ChangeAndPersistenceReconciledInPublic -- FridemarPache
Ah, hmmm, Actually I'm an atheist, although I am willing to accept PascalsWager if pushed. Ethics is even more of a vaporware science than psychology and I refuse to accept its reality. Please don't assume that any of this means that I'm a bad person, because if you do then it would be a strong comment about your own ethics and I don't want the responsibility of tearing down any of your strongly held beliefs about the universe or yourself. Also, this thread has nothing at all to do with the concept of GodObject and so are irrelevant. -- BryanDollery, SpellChecker
SpellChecker, BryanDollery: Atheist for me is only a more or less temporary label, to let other people know, that the bearer of this label
Several Holy Scripts say, don't make an image (i.e. model) of [of what?]
Not the same as a GodClass