编程思想设计模式行为模式Behavioralregistry
Posted 炼狱腾蛇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程思想设计模式行为模式Behavioralregistry相关的知识,希望对你有一定的参考价值。
Python版
https://github.com/faif/python-patterns/blob/master/behavioral/registry.py
#!/usr/bin/env python # -*- coding: utf-8 -*- class RegistryHolder(type): REGISTRY = {} def __new__(cls, name, bases, attrs): new_cls = type.__new__(cls, name, bases, attrs) """ Here the name of the class is used as key but it could be any class parameter. """ cls.REGISTRY[new_cls.__name__] = new_cls return new_cls @classmethod def get_registry(cls): return dict(cls.REGISTRY) class BaseRegisteredClass(object): __metaclass__ = RegistryHolder """ Any class that will inherits from BaseRegisteredClass will be included inside the dict RegistryHolder.REGISTRY, the key being the name of the class and the associated value, the class itself. """ pass if __name__ == "__main__": print("Before subclassing: ") for k in RegistryHolder.REGISTRY: print(k) class ClassRegistree(BaseRegisteredClass): def __init__(self, *args, **kwargs): pass print("After subclassing: ") for k in RegistryHolder.REGISTRY: print(k) ### OUTPUT ### # Before subclassing: # BaseRegisteredClass # After subclassing: # BaseRegisteredClass # ClassRegistree
以上是关于编程思想设计模式行为模式Behavioralregistry的主要内容,如果未能解决你的问题,请参考以下文章
编程思想设计模式行为模式Behavioral备忘录模式Memento
编程思想设计模式行为模式Behavioral观察者模式Observer