本文章来给大家介绍php入门教程之工厂模式哦,工厂模式概念:实例化对象,用工厂方法替代new操作,有需要了解学习的朋友可参考.
工厂模式实例代码:
<?php //首先定义什么是人类 interface Human { //人是愉快的,会笑的 public function laugh(); //人类还会哭,代表痛苦 public function cry(); //人类会说话 public function talk(); } //然后定义具体的人种 class YellowHuman implements Human {//黄色人种,这个翻译的不准确,将就点吧 function cry() { var_dump( "黄色人种会哭");} function laugh() {var_dump( "黄色人种会大笑,幸福呀!");} function talk() {var_dump( "黄色人种会说话,一般说的都是双字节"); } } class WhiteHuman implements Human { //白色人种 public function cry() {var_dump("白色人种会哭");} public function laugh() {var_dump("白色人种会大笑,侵略的笑声"); } public function talk() {var_dump("白色人种会说话,一般都是但是单字节!"); } } class BlackHuman implements Human { //黑色人种 public function cry() {var_dump("黑色人种会哭");} public function laugh() {var_dump("黑色人种会大笑,侵略的笑声"); } public function talk() {var_dump("黑色人种会说话,一般都是但是单字节!"); } } //人种也定义完毕了,那我们把八卦炉定义出来: class HumanFactory { //定一个烤箱,泥巴塞进去,人就出来,这个太先进了 public static function createHuman( $c ){ if ($c instanceof Human ) {//判断是否继承自Human return $c; }else { var_dump("必须跟HuMan有一腿"); } } } var_dump("------------造出的第一批人是这样的:白人-----------------"); $whiteHuman = HumanFactory::createHuman( new WhiteHuman()); $whiteHuman->cry(); $whiteHuman->laugh(); $whiteHuman->talk(); //女娲第二次造人,火候加足点,然后又出了个次品,黑人 var_dump("nn------------造出的第二批人是这样的:黑人-----------------"); $blackHuman = HumanFactory::createHuman(new BlackHuman()); $blackHuman->cry(); $blackHuman->laugh(); $blackHuman->talk(); //第三批人了,这次火候掌握的正好,黄色人种(不写黄人,免得引起歧义),备注:RB人不属于此列 var_dump("nn------------造出的第三批人是这样的:黄色人种-----------------"); $yellowHuman = HumanFactory::createHuman(new YellowHuman()); $yellowHuman->cry(); $yellowHuman->laugh(); $yellowHuman->talk(); ?>
相关文章:
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
3 몇 주 전ByDDD
Windows 11 KB5054979의 새로운 기능 및 업데이트 문제를 해결하는 방법
2 몇 주 전ByDDD
Atomfall에서 크레인 제어 키 카드를 찾을 수 있습니다
3 몇 주 전ByDDD
R.E.P.O. 저축 설명 (및 파일 저장)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Dreamweaver Mac版
시각적 웹 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
