PHP工厂模式计算面积与周长

<?php
interface InterfaceShape
{
function getArea();
function getCircumference();
}

/**
* 矩形
*/
class Rectangle implements InterfaceShape
{
private $width;
private $height;
public function __construct($width,$height){
$this->width=$width;
$this->height=$height;
}
public function getArea(){
return $this->width*$this->height;
}
public function getCircumference(){
return 2*$this->width+2*$this->height;
}
}
/**
* 圆
*/
class circle implements InterfaceShape{
private $redius;
public function __construct($redius){
$this->redius = $redius;
}
public function getArea(){
return M_PI*pow($this->redius,2);
}
public function getCircumference(){
return M*PI*2*$this->redius;
}
}
class FactoryShape{//func_get_arg(索引)返回当前函数指定索引的参数值,返回string格式;
static public function create(){
switch (func_num_args()) {
case 1:
return new circle(func_get_arg(0));
case 2:
return new Rectangle(func_get_arg(0),func_get_arg(1));
default:
break;
}
}
}
$rect = FactoryShape::create(5,5);
var_dump($rect);
echo "<br>";
$circle = FactoryShape::create(4);
var_dump($circle);
?>

转载于:https://www.cnblogs.com/isuansuan/p/9767105.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K-Means聚类算法思想及实现

K-Means聚类概念&#xff1a; K-Means聚类是最常用的聚类算法&#xff0c;最初起源于信号处理&#xff0c;其目标是将数据点划分为K个类簇&#xff0c; 找到每个簇的中心并使其度量最小化。 该算法的最大优点是简单、便于理解&#xff0c;运算速度较快&#xff0c;缺点是只能应…

(2.1)DDL增强功能-数据类型、同义词、分区表

1.数据类型 &#xff08;1&#xff09;常用数据类型  1.整数类型 int 存储范围是-2,147,483,648到2,147,483,647之间的整数&#xff0c;主键列常设置此类型。 &#xff08;每个数值占用 4字节&#xff09; smallint 存储范围是-32,768 到 32,767 之间的整数&#xff0c;用…

充分利用昂贵的分析

By Noor Malik努尔马利克(Noor Malik) Let’s say you write a query in Deephaven which performs a lengthy and expensive analysis, resulting in a live table. For example, in a previous project, I wrote a query which pulled data from an RSS feed to create a li…

【java并发编程艺术学习】(一)初衷、感想与笔记目录

不忘初心&#xff0c;方得始终。 学习java编程这么长时间&#xff0c;自认为在项目功能需求开发中没啥问题&#xff0c;但是之前的几次面试和跟一些勤奋的或者小牛、大牛级别的人的接触中&#xff0c;才发现自己的无知与浅薄。 学习总得有个方向吧&#xff0c;现阶段就想把并发…

层次聚类和密度聚类思想及实现

层次聚类 层次聚类的概念&#xff1a; 层次聚类是一种很直观的算法。顾名思义就是要一层一层地进行聚类。 层次法&#xff08;Hierarchicalmethods&#xff09;先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后&#xff0c;再 计算类与类之间的距离&#xff0…

通配符 或 怎么浓_浓咖啡的咖啡渣新鲜度

通配符 或 怎么浓How long could you wait to brew espresso after grinding? Ask a barista, any barista, and I suspect their answer is immediately or within a few minutes. The common knowledge on coffee grounds freshness is that after 30 minutes or so, coffee…

保留

看见 你在我眼前 不去猜想我们隔多远 当我 夜幕中准备 只想让沉默的能开解 在不同的遭遇里 我发现你的瞬间 有种不可言说的温柔直觉 在有限的深夜消失之前 触摸你的脸 我情愿这是幻觉 也不愿是种告别 已经忘了 你的名字 就在这座 寂静星石 怎么还有 你的样子 被保留 给我 一整个…

《netty入门与实战》笔记-02:服务端启动流程

为什么80%的码农都做不了架构师&#xff1f;>>> 1.服务端启动流程 这一小节&#xff0c;我们来学习一下如何使用 Netty 来启动一个服务端应用程序&#xff0c;以下是服务端启动的一个非常精简的 Demo: NettyServer.java public class NettyServer {public static v…

谱聚类思想及实现

&#xff08;这个我也没有怎么懂&#xff0c;为了防止以后能用上&#xff0c;还是记录下来&#xff09; 谱聚类 注意&#xff1a;谱聚类核心聚类算法还是K-means 算法进行聚类~ 谱聚类的实现过程&#xff1a; 1.根据数据构造一个 图结构&#xff08;Graph&#xff09; &…

Tengine HTTPS原理解析、实践与调试【转】

本文邀请阿里云CDN HTTPS技术专家金九&#xff0c;分享Tengine的一些HTTPS实践经验。内容主要有四个方面&#xff1a;HTTPS趋势、HTTPS基础、HTTPS实践、HTTPS调试。 一、HTTPS趋势 这一章节主要介绍近几年和未来HTTPS的趋势&#xff0c;包括两大浏览器chrome和firefox对HTTPS的…

Linux 指定运行时动态库路径【转】

转自&#xff1a;http://www.cnblogs.com/cute/archive/2011/02/24/1963957.html 众所周知&#xff0c; Linux 动态库的默认搜索路径是 /lib 和 /usr/lib 。动态库被创建后&#xff0c;一般都复制到这两个目录中。当程序执行时需要某动态库&#xff0c; 并且该动态库还未加载到…

opencv:SIFT——尺度不变特征变换

SIFT概念&#xff1a; Sift&#xff08;尺度不变特征变换&#xff09;&#xff0c;全称是Scale Invariant Feature Transform Sift提取图像的局部特征&#xff0c;在尺度空间寻找极值点&#xff0c;并提取出其位置、尺度、方向信息。 Sfit的应用范围包括 物体辨别、机器人地图…

pca(主成分分析技术)_主成分分析技巧

pca(主成分分析技术)介绍 (Introduction) Principal Component Analysis (PCA) is an unsupervised technique for dimensionality reduction.主成分分析(PCA)是一种无监督的降维技术。 What is dimensionality reduction?什么是降维&#xff1f; Let us start with an exam…

npm link run npm script

npm link & run npm script https://blog.csdn.net/juhaotian/article/details/78672390 npm link命令可以将一个任意位置的npm包链接到全局执行环境&#xff0c;从而在任意位置使用命令行都可以直接运行该npm包。 app-cmd.cmd #!/usr/bin/env nodeecho "666" &a…

一文详解java中对JVM的深度解析、调优工具、垃圾回收

2019独角兽企业重金招聘Python工程师标准>>> jvm监控分析工具一般分为两类&#xff0c;一种是jdk自带的工具&#xff0c;一种是第三方的分析工具。jdk自带工具一般在jdk bin目录下面&#xff0c;以exe的形式直接点击就可以使用&#xff0c;其中包含分析工具已经很强…

借用继承_博物馆正在数字化,并在此过程中从数据中借用

借用继承Data visualization is a great way to celebrate our favorite pieces of art as well as reveal connections and ideas that were previously invisible. More importantly, it’s a fun way to connect things we love — visualizing data and kicking up our fee…

高斯噪声,椒盐噪声的思想及多种噪声的实现

图像噪声&#xff1a; 概念&#xff1a; • 图像噪声是图像在获取或是传输过程中受到随机信号干扰&#xff0c;妨碍人们对图像理解及分析处理 的信号。 • 很多时候将图像噪声看做多维随机过程&#xff0c;因而描述噪声的方法完全可以借用随机过程的描述&#xff0c; 也就是使…

bzoj1095 [ZJOI2007]Hide 捉迷藏

据说是道很厉害的题。。。。黄学长的安利啊。。。。 然而我却用它学分治。。。。 一个坑就摆在这里了。。。。 转载于:https://www.cnblogs.com/LLppdd/p/9124394.html

如何识别媒体偏见_描述性语言理解,以识别文本中的潜在偏见

如何识别媒体偏见TGumGum can do to bring change by utilizing our Natural Language Processing technology to shed light on potential bias that websites may have in their content. The ideas and techniques shared in this blog are a result of the GumGum Hackatho…

分享 : 警惕MySQL运维陷阱:基于MyCat的伪分布式架构

分布式数据库已经进入了全面快速发展阶段。这种发展是与时俱进的&#xff0c;与人的需求分不开&#xff0c;因为现在信息时代的高速发展&#xff0c;导致数据量和交易量越来越大。这种现象首先导致的就是存储瓶颈&#xff0c;因为MySQL数据库实质上还是一个单机版本的数据库&am…