c语言6大设计原则 控制反转,简单谈谈控制反转 ( Inversion of Control )

在上一篇《关于原则、模式、框架的概念梳理》中,我提到最近在学习一些基础理论,例如一些简单的编程原则,设计模式等。那么本文就来谈谈我对于控制反转这个概念的理解。因为纯粹是个人学习的总结与理解,如有不足之处,欢迎拍砖,加以指正。

本文将涉及到的概念

单一职责原则

控制反转原则

依赖倒置原则

静态工厂模式

抽象工厂模式

依赖注入模式(方法注入)

思考了一下,总觉得直接一上来就用下定义的方式来说明上面的概念会显得皱皱巴巴,麻麻赖赖,一点都不圆润,所以我想通过最近 与房子打交道的经历 来把上述的概念盘一下,不知效果会如何...🙄

对于装修的思考

其实我买的是精装房 😆

但这并不影响我对装修的思考,我甚至在买房之前就思考了一些和装修相关的事情,那么接下来我将用代码告诉你,在买房之前我都想了些什么鬼...

假如我买了毛坯房

那么这意味着我将得自己装修,也就是需要去找各种装修工人,嗯...我的自述大概是这样:

1c266814b436

一位 *苦逼* 毛坯房业主的装修独白

那么对应的代码应该就是这样的:

///

/// Tightly coupled class

///

public class RoughcastHost

{

public RoughcastHost()

{

Console.WriteLine("I'm the host of roughcast house...");

}

private void BuyARoughcastHouse()

{

Console.WriteLine("I bought a roughcast house...");

}

private void Decorate()

{

Console.WriteLine("I want to decorate my house...");

var hardwareWorker = FindHardwareWorker();

hardwareWorker.Decorate();

var floorFinisher = FindFloorFinisher();

floorFinisher.Decorate();

var kitchenAndBathWorker = FindKitchenAndBathWorker();

kitchenAndBathWorker.Decorate();

var paperhanger = FindPaperhanger();

paperhanger.Decorate();

var painter = FindPainter();

painter.Decorate();

Console.WriteLine("Decorate house done...");

}

public void ToLiveInNewHouse()

{

BuyARoughcastHouse();

Decorate();

Console.WriteLine("Now I can live in new house...");

}

private HardwareWorker FindHardwareWorker()

{

Console.WriteLine("Find HardwareWorker...");

return new HardwareWorker();

}

private KitchenAndBathWorker FindKitchenAndBathWorker()

{

Console.WriteLine("Find KitchenAndBathWorker..."

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值