V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  timsims  ›  全部回复第 8 页 / 共 8 页
回复总数  153
1  2  3  4  5  6  7  8  
我觉得楼主想问的是会不会实例化6次。。。
2015-06-14 13:04:16 +08:00
回复了 iyaozhen 创建的主题 PHP PHP 类的一个疑问
@iyaozhen

实例化本身不存在什么坑,但是在类中去实例化对象就存在耦合问题(你这里就是A类的方法中new B),假如有一天你想把项目里所有class B都替换成class C,那就相当麻烦,这就是为什么我推荐通过依赖注入在A的构造函数里传入实例化后的B

不过我那个例子其实还不是最优的,最优的做法应该是注入一个接口,让B实现这个接口

具体还是看用代码说明。。

```
Interface WhatEver
{
public function method1();
public function method2();
}

Class A
{
protected $bClass;

public function __construct(WhatEver $bClass)
{
$this->bClass = $bClass;
}

}

class B implements WhatEver
{
public function method1(){}
public function method2(){}
}

class C implements WhatEver
{
public function method1(){}
public function method2(){}
}

$b = new B();
$a = new A($b);

// 有一天你想把B无痛替换成C
$c = new C();
$a = new A($c); // 就这么简单
```
2015-06-14 12:25:27 +08:00
回复了 iyaozhen 创建的主题 PHP PHP 类的一个疑问
单例是反模式,不方便测试

楼主的意思,我的理解是: A类内有若干个方法需要调用B类

那么可以使用依赖注入,先把B类实例化后,作为参数传给A类的构造函数里

Class A
{
protected $bClass;

public function __construct(B $bClass)
{
$this->$bClass = $bClass;
}

public function someMethod()
{
$this->$bClass->method();
}
}

class B
{
public function method(){}
}

$b = new B;
$a = new A($b);
2015-06-04 17:48:03 +08:00
回复了 whistle 创建的主题 PHP 大家 php 上线都用什么系统啊
Capistrano + 1

个人项目没所谓,公司项目用ftp一旦出问题回滚不方便
但是如果要对detail里某字段进行统计岂不是要把所有数据都取出来,然后再自行计算?
2015-05-26 11:56:01 +08:00
回复了 ShadyK 创建的主题 macOS Parallels 这公司真的太烂了
我也遇到这个问题, PD10+WIN 8.1, 同一组密码在mac的safari可以登陆

最后把密码改成没有特殊字符的密码才可以在PD上登陆
2015-05-01 15:55:22 +08:00
回复了 csensix 创建的主题 PHP Laravel 感觉也太重了
先吐槽安装麻烦:
完全新项目,Laravel new xxx 就完事了,连composer update也省掉,接下来就是配个虚拟主机, homestead也是一条serve命令就解决

包管理是发展的趋势,这年头第三方包都遵照psr-0或者psr-4规则, 如果你还想手动include,require,或者自己手动写autoload规则的话反而容易出问题,当然如果你觉得自己有能力写个更高效的psr0/4实现也可以给composer项目发个pull request

所以要么用现有的轮子要么做个更吊的轮子,但别重复做一样的轮子
2015-01-22 17:51:18 +08:00
回复了 tekin 创建的主题 Ruby on Rails Gitlab 安装成功、创建项目后添加 ssh key、push 遇到各种问题
表示折腾过一次之后压根不想再碰gitlab

我们公司现在直接上Docker,镜像别人弄好了,只要配置好redis和mysql账号密码什么的就可以使用,而且升级也方便

https://github.com/sameersbn/docker-gitlab
2015-01-14 22:45:43 +08:00
回复了 gooffer 创建的主题 推广 [福利]百度阿里腾讯等 50 个笔试卷 PDF 合集
tim.sims86[at]gmail.com 谢谢
2014-12-29 14:19:31 +08:00
回复了 timsims 创建的主题 iPhone 广州有参加过 iPhone 5 电池更换计划的吗?
这些授权店的联系方式就只有电话。。
你们说的我都经常用得上。。。实际上标准108键盘就差截图,关机和PAUSE没用上,F1-F12都分给插件了
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1115 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 18:11 · PVG 02:11 · LAX 11:11 · JFK 14:11
Developed with CodeLauncher
♥ Do have faith in what you're doing.