自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Java_HashSet

Java基础教程理论基础入门示例进入正题 理论基础 HashMap,哈希表,存储键值对,不同的键可以存储相同的值。 HashSet,在HashMap基础上改造而来,不允许存储相同的值。Set, 顾名思义,集合的意思。 入门示例 产品小白说客户端要加个新接口让我支持下,客户端传2个字符串给我,我再调用研发黑哥的引擎服务,把结果吐给用户。黑哥发话了:你别给我弄一坨字符串,看着就烦,我只接收1个HashSet类型的变量。没办法,我得搞一个转换方法,把2个字符串传进去,然后返回一个保存String元素的Hash

2021-08-03 12:19:52 132

原创 组合模式

组合模式,别名合成模式。 当对象或系统出现部分与整体的层次结构,类似于树状关系时,可以考虑用组合模式。 举个栗子: <?php abstract class Organization { protected $name; protected $child; public function __construct($name) { $this->name = $name; }

2017-04-10 19:58:48 195

原创 建造者模式

建造者模式,先来看下定义:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 简单地说,需要创建的对象都有自己的功能,但是创建方式是一样的,那么可以用建造者类来负责功能对象的创建。 类图如下: Builder模式中主要角色 抽象建造者(Builder)角色:定义抽象接口,规范产品各个部分的建造,必须包括建造方法和返回方法。具体建造者(Concre

2017-04-03 17:17:54 180

原创 模板方法模式

模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。相当于在父类中定义了操作规则,子类都按照这个规则去处理自己的业务。 比如,项目需要异步处理,从消息队列里获取数据后进行更新操作,那是不是总结起来就是获取数据和更新数据。 <?php abstract class Base { public function execute() { $data = $this->expor

2017-04-01 17:08:42 198

原创 原型模式

通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。 PHP需要注意深浅复制问题。PHP对于对象属性默认是浅复制。 举个栗子,网站上下载电子书。电子书好比是一个对象,大家需要阅读只需下载下来(复制)即可,不需要重复去生成电子书,很方便。 此处应该有UML图,时间关系,后期补上... <?php interface website{ public function copy();

2017-03-31 16:38:24 182

原创 代理模式

代理模式,提供一种代理以控制对这个对象的访问。 代理类成为实际调用对象的中间件,可以控制对实际调用对象的访问权限。 比如支付宝代交水电费,滴滴软件代叫出租车。 <?php interface go{ public function takeCar(); } class BeijingTaxi implements go{ public function drive(

2017-03-31 15:05:40 214

原创 门面模式

门面模式,别名外观模式。为客户端提供一个统一的接口,客户端不需要知晓接口调用的具体类,甚至可以封装成静态调用方式,参数也是自由传递。

2017-03-31 10:25:04 321

原创 装饰者模式

装饰者模式可以动态的给一个对象添加一些额外的职责,非常灵活进行组合。 装饰者模式也可以解决继承依赖的难题,比如在一个项目中,反复使用继承会造成层级结构太大,有很多父类的属性和方法根本用不上,后期需求改动,想修改也难于上青天。这时候可以使用装饰者模式。 不过装饰者模式会造成过多子类的问题。

2017-03-30 19:35:02 179

原创 观察者模式

观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。当具体主题的内部状态改变时,给所有登记过的观察者发出通知。 观察者也称为发布-订阅(Publish-Subscribe)模式 代码如下: <?php interface Subject{ public function attach($params); public

2017-03-21 07:22:28 238

原创 策略模式

策略模式,定义若干策略类,客户端根据具体需求去使用相应的策略类。 使用场景如不同类型商品的打折力度、不同级别会员的优惠幅度、员工奖金等。 上代码: <?php interface Pay{ public function payMoney(); } class WxPay implements Pay{ public function payMoney() { echo 'Use

2017-03-20 12:41:58 181

原创 单例模式

单例模式,一个类只被实例化一次。 类中用静态属性和静态方法去判断唯一性,要注意clone的问题。 Java中还要注意多线程同时实例化对象的坑,Php基本不存在这个问题,就不予考虑了。不过可以通过以下两个方案解决: 1. 急切创建实例。静态属性直接赋值单例对象,这样类调用时已经存在了对象。 2. 锁机制。实例化对象时加锁,完成后解锁。多线程中不会出现生成两个对象的坑了。 上代码: <?p

2017-03-19 23:42:02 178

原创 抽象工厂

抽象工厂,提供一个创建一系列相关或相互依赖对象的接口。

2017-03-19 23:21:10 224

原创 工厂方法

相比简单工厂模式,做了进一步的抽象为接口或抽象类,给所有的功能类添加了对应的工厂类,一 一在工厂类中实例对应的功能类,遵循了开放封闭原则(对扩展开放,对修改封闭) 上代码: <?php interface People{ public function work(); } class Teacher implements People{ public function work() {

2017-03-19 22:44:31 231

原创 简单工厂模式

简单工厂模式,严格来说不属于设计模式,更像一种编码风格。 通过在工厂类中进行判断,一般通过if-elseif 或者 switch,然后创建需要的功能类。 上代码: <?php interface People { public function work(); } class Teacher implements People{ public function work() {

2017-03-19 22:15:15 181

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除