在项目开发的过程中经常遇到的一个选择模式
class A { private $dep; public function __construct($dep) { $this->dep = $dep; } public function handle() { $this->f1(); $this->f2(); } public function f1() { // 这里也依赖 $dep } public function f2() { } }
还有下边这种模式
class A { public function handle($dep) { $this->f1($dep); $this->f2(); } public function f1($dep) { // 这里也依赖 $dep } public function f2() { } }
针对第一种形式把参数依赖在对象内部,在调用的时候感觉相对容易,针对第二种形式感觉比较方法依赖注入,大家有没有方法论来评估这两种情况应该怎么选择
1 Ayanokouji 2024-01-24 12:21:35 +08:00 为啥发 go 里边 |
2 aababc OP @Ayanokouji 我还没有完成就发布了,不知道点击到了啥 |
![]() | 3 BeijingBaby 2024-01-24 12:27:01 +08:00 都可以啊,一个依赖被多处使用就构造传入。单次使用,可以方法传入。 按需选择。 |
![]() | 4 happinessnch 2024-01-24 12:49:51 +08:00 OOP 的话要看 dep 和 A 的抽象关系,也看业务需求,也看设计思路。 时间充裕先设计再开发,deadline 要到了先干再说,又不是不能用。 |
5 aababc OP @happinessnch 老哥能不能展开说说看 |
![]() | 6 happinessnch 2024-01-24 13:50:00 +08:00 比如 A 订单,dep是 VIP 对象, 为了方便计算折扣,A 持有一个 VIP 对象就很不合适。 |