Мне нравится ответ Jimmy много, но я чувствую, что должен добавить что-то к нему. Ключ ко всему этому является "способным" в IProcess, который в состоянии . Это указывает на возможность (или свойство, но значение "внутреннего качества", не в смысле свойств C#) объекта, который реализует интерфейс. IAnimal, вероятно, не, хорошим примером для интерфейса, но IWalkable мог бы быть хороший интерфейс, чтобы иметь, если Ваша система имеет много вещей, которые могут идти. Вам можно было бы получить классы из Животного, такие как Собака, Корова, Рыба, Змея. Первые два, вероятно, реализовали бы IWalkable, последние два не идут, таким образом, они не были бы. Теперь Вы спрашиваете, "почему не только имеют другой суперкласс, WalkingAnimal, из которого происходят Собака и Корова?". Ответ - когда у Вас есть что-то полностью вне дерева наследования, которое также может идти, такие как робот. Робот реализовал бы IWalkable, но вероятно не произойдет из Животного. Если Вы хотите список вещей, которые могут идти, Вы вводите его как IWalkable, и можно поместить всех животных обхода плюс роботы в списке.
Теперь замена IWalkable с чем-то больше программного-обеспечения-y как IPersistable и аналогия становятся намного ближе к тому, что Вы видели бы в реальной программе.
Вы можете использовать консоль разработки для просмотра и редактирования вашего хранилища данных, кэша памяти, очереди задач и заданий cron по адресу / _ ah / admin /
на вашем локальном сервере разработки.
Если вы находитесь на Java-стороне, обязательно попробуйте AppWrench. Он обеспечивает полную поддержку всех типов данных App Engine, а также обеспечивает более красивый просмотр, сортировку и фильтрацию. Он работает локально бесплатно, так что я наслаждаюсь его использованием сейчас.
Просмотр сущностей:
Просмотр сущностей http://appwrench.onpositive.com/static/images/productivity/viewer.jpg
Диалог редактирования:
изменение текста http://appwrench.onpositive.com/static/images/productivity/edit2.png