PHP学习心得


工厂模式代码

<h2>简单工厂模式</h2> <pre><code class="language-php">interface People { public function eat(); } class Man implements People{ public function eat() { echo '男人吃饭比较快&lt;br&gt;'; } } class Women implements People { public function eat() { echo '女人吃饭比较慢!&lt;br&gt;'; } } class SimpleFactoty { // 简单工厂里的静态方法 static public function createMan() { return new Man(); } static public function createWomen() { return new Women(); } } $man = SimpleFactoty::createMan(); $man-&gt;eat(); $man = SimpleFactoty::createWomen(); $man-&gt;eat();</code></pre> <h2>工厂方法模式</h2> <pre><code class="language-php">interface People { public function eat(); } class Man implements People{ public function eat() { echo '男人吃饭比较快&lt;br&gt;'; } } class Women implements People { public function eat() { echo '女人吃饭比较慢!&lt;br&gt;'; } } interface CreateMan { // 注意,这里是和简单工厂本质区别所在,将对象的创建抽象成一个接口。 public function create(); } class FactoryMan implements CreateMan{ public function create() { return new Man(); } } class FactoryWomen implements CreateMan { public function create() { return new Women(); } } class Client { // 简单工厂里的静态方法 public function test() { $Factory = new FactoryMan; $man = $Factory-&gt;create(); $man-&gt;eat(); $Factory = new FactoryWomen; $man = $Factory-&gt;create(); $man-&gt;eat(); } } $f = new Client; $f-&gt;test(); </code></pre> <h2>抽象工厂模式</h2> <pre><code class="language-php">interface People { public function eat(); } class AppleMan implements People{ public function eat() { echo '男人:我喜欢吃苹果!&lt;br&gt;'; } } class OrangeMan implements People{ public function eat() { echo '男人:我喜欢吃橘子!&lt;br&gt;'; } } class AppleWomen implements People { public function eat() { echo '女人:我也喜欢吃苹果!&lt;br&gt;'; } } class OrangeWomen implements People { public function eat() { echo '女人:我喜欢吃橘子!&lt;br&gt;'; } } interface CreateMan { // 注意了,这里是本质区别所在,将对象的创建抽象成一个接口。 public function createApple(); //分为 内敛的和外向的 public function createOrange(); //内向 } class FactoryMan implements CreateMan{ public function createApple() { return new AppleMan(); } public function createOrange() { return new OrangeMan(); } } class FactoryWomen implements CreateMan { public function createApple() { return new AppleWomen(); } public function createOrange() { return new OrangeWomen(); } } class Client { // 简单工厂里的静态方法 public function test() { $Factory = new FactoryMan; $man = $Factory-&gt;createApple(); $man-&gt;eat(); $man = $Factory-&gt;createOrange(); $man-&gt;eat(); $Factory = new FactoryWomen; $man = $Factory-&gt;createApple(); $man-&gt;eat(); $man = $Factory-&gt;createOrange(); $man-&gt;eat(); } } $f = new Client; $f-&gt;test(); </code></pre>

页面列表

ITEM_HTML