一般来说,设计模式分为三类:创建型模式---共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构模式---共七种:Adapter模式、Decorator模式、Proxy模式、Appearance模式、Bridge模式、Combination模式、Flyweight模式。行为模式---一共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访客模式、中介模式下面,简单介绍一下几种设计模式:单例模式单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个特殊的类,叫做singleton。单例模式可以保证一个类在系统中只有一个实例。也就是说,一个类只有一个对象实例。优点:1.实例控制:单例模式防止其他对象实例化自己的单例对象副本,从而保证所有对象访问唯一实例。二、灵活性:由于类控制实例化过程,类可以灵活改变实例化过程。缺点1.开销虽然量很小,但如果每次对象请求引用时检查类的实例是否存在,仍然需要一些开销。这个问题可以通过使用静态初始化来解决。2.可能的开发混乱在使用单例对象(尤其是定义在类库中的对象)时,开发者一定要记住不能使用new关键字来实例化对象。由于库源代码可能无法访问,应用程序开发人员可能会意外地发现自己无法直接实例化此类。config=$config;echo"我已经被实例化了-";}//防止对象被克隆privatefunction__clone(){}publicstaticfunctiongetInstance($config){//判断$instance是否是Log的对象//如果没有创建则创建if(!self::$instanceinstanceofself){self::$instance=newself($config);}返回自我::$实例;}publicfunctiongetName(){echo$this->config;}}$db1=Log::getInstance('实例1');$db1->getName();回声“
”;$db2=Log::getInstance('实例2');$db2->getName();?>运行结果:我已经被实例化了——实例化1实例化2
