网站开发平台的定义,电子商务网站设计与实现,网站开发与实训报告,茂名百度搜索网站排名工厂模式#xff1a; 工厂模式就是专门负责将大量有共同接口的类实例化#xff0c;而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口#xff0c;由子类决定实例化哪一个类。 工厂模式相当于创建实例对象的new#xff0c;经常要根据类Class生成…工厂模式 工厂模式就是专门负责将大量有共同接口的类实例化而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口由子类决定实例化哪一个类。 工厂模式相当于创建实例对象的new经常要根据类Class生成实例对象如A anew A() 工厂模式也是用来创建实例对象的工厂模式是现今最常用的模式在Java程序系统中随处可见。 ?php
class YunSuan
{public $a;public $b; //写空的操作方法public function Suan(){ }
}
//面向操作的继承之前学过(可扩展性比较高)
class Jia extends YunSuan
{public function Suan(){return $this-a$this-b; }
}//工厂模式
//工厂类生产对象
class GongChang
{//不需要造对象直接就可以调用static function ShengChan($ysf){switch($ysf){case :return new Jia();break;case -:return new Jian();break; }}
}$jia GongChang::ShengChan();
$jia-a 10;
$jia-b 19;
var_dump($jia);
echo $jia-Suan(); 使用工厂模式的好处是使用类的人不必知道做的是什么类只需要知道工厂类然后赋予相应的参数会自动造出相应的对象然后调用相应的方法即可。为防止类里面有很多参数容易记混可以使用工厂模式传入易懂得参数调用相应的方法 单例模式 单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问从而方便 对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个单例模式是最好的解决方案。显然单例模式的要点有三个一是某个类只能有一个实例二是它 必须自行创建这个实例三是它必须自行向整个系统提供这个实例。 我们的类在造对象的时候只允许用户造一个对象多了不可以。像之前的数据访问类DBDA每次在使用的时候都需要new 特别注意以下的注释部分 ?php
class DBDA
{//连接数据库的类让他只能造一个对象出来在不加任何控制的时候可以造很多的类出来//在造对象的时候会调用构造的方法//把构造方法变成私有的就可以可以控制住public static $dx;//用来存储对象//把构造做为私有的private function __construct(){} //生成对象的方法//为了使该方法能够较简单的被调用因此做成静态的static function DuiXiang(){//因为存储的对象$dx是静态的因此使用selfif(empty(self::$dx)){self::$dx new DBDA();}return self::$dx;}}//可以控制住不让他随便new但是又有新的问题就是现在一个对象都造不出来了
//$db new DBDA();//下面是不会报错的单例模式
$db DBDA::DuiXiang(); 单例模式的目的是将类只能造一个对象出来 单例模式的主要方法是将构造 变成私有的--做一个静态的生成对象的方法--造一个静态的存储对象--return 静态的对象 面向对象设计的原则 OOD基本上有6大原则而实际上都是互补的也就是说一些原则需要利用另一些原则来实现自己。6大原则如下 1) Open-Close PrincipleOCP开-闭原则讲的是设计要对扩展有好的支持而对修改要严格限制。这是最重要也是最为抽象的原则基本上我们所说的Reusable Software既是基于此原则而开发的。其他的原则也是对它的实现提供了路径。 2) Liskov Substituition PrincipleLSP里氏代换原则很严格的原则规则是“子类必须能够替换基类否则不应当设计为其子类。”也就是说子类只能去扩展基类而不是隐藏或覆盖基类。 3) Dependence Inversion PrincipleDIP依赖倒换原则“设计要依赖于抽象而不是具体化”。换句话说就是设计的时候我们要用抽象来思考而不是一上来就开始划分我需要哪些哪些类因为这些是具体。这样做有什么好处呢人的思维本身实际上就是很抽象的我们分析问题的时候不是一下子就考虑到细节而是很抽象的将整个问题都构思出来所以面向抽象设计是符合人的思维的。另外这个原则会很好的支持OCP面向抽象的设计使我们能够不必太多依赖于实现这样扩展就成为了可能这个原则也是另一篇文章《Design by Contract》的基石。 4) Interface Segregation PrincipleISP接口隔离原则“将大的接口打散成多个小接口”这样做的好处很明显我不知道有没有必要再继续描述了为了节省篇幅实际上我对这些原则只是做了一个小总结如果有需要更深入了解的话推荐看《Java与模式》MS MVP的一本巨作^_^ 5) 单一职责一个类的功能尽量单一降低耦合 6) Law of Demeter or Least Knowlegde PrincipleLoD or LKP迪米特法则或最少知识原则这个原则首次在Demeter系统中得到正式运用所以定义为迪米特法则。它讲的是“一个对象应当尽可能少的去了解其他对象”。也就是又一个关于如何松耦合Loosely-Coupled的法则。 好了以上是6大原则或法则的介绍对这些原则的深入研究正是如何得到设计模式的道路。在进行了深入了解后我们就可以开始看看设计模式了设计模式正是对这些法则的应用著名的设计模式有四人帮Gang of FourGoF的23个模式除此之外还有很多其他的一些著名模式大家可以慢慢研究如果能自己产出一两个模式的话那就太好了证明你也是高手了^_^转载于:https://www.cnblogs.com/Duriyya/p/5616827.html