ASP.NET 设计模式中依赖倒置原则
1概述编辑
2意图编辑
3代码实现编辑
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
publicclassHondaCar{ publicvoidRun() { Console.WriteLine( "本田开始启动了" ); } publicvoidTurn() { Console.WriteLine( "本田开始转弯了" ); } publicvoidStop() { Console.WriteLine( "本田开始停车了" ); } } publicclassFordCar { publicvoidRun() { Console.WriteLine( "福特开始启动了" ); } publicvoidTurn() { Console.WriteLine( "福特开始转弯了" ); } publicvoidStop() { Console.WriteLine( "福特开始停车了" ); } } publicclassAutoSystem { publicenumCarType{Ford,Honda}; privateHondaCarhcar=newHondaCar(); privateFordCarfcar=newFordCar(); privateCarTypetype; publicAutoSystem(CarTypetype) { this .type=type; } privatevoidRunCar() { if (type==CarType.Ford) { fcar.Run(); } else { hcar.Run(); } } privatevoidTurnCar() { if (type==CarType.Ford) { fcar.Turn(); } else { hcar.Turn(); } } privatevoidStopCar() { if (type==CarType.Ford) { fcar.Stop(); } else { hcar.Stop(); } } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
publicclassAutoSystem { publicenumCarType{Ford,Honda,Bmw}; HondaCarhcar=newHondaCar(); FordCarfcar=newFordCar(); BmwCarbcar=newBmwCar(); privateCarTypetype; publicAutoSystem(CarTypetype) { this .type=type; } privatevoidRunCar() { if (type==CarType.Ford) { fcar.Run(); } elseif(type==CarType.Honda) { hcar.Run(); } elseif(type==CarType.Bmw) { bcar.Run(); } } privatevoidTurnCar() { if (type==CarType.Ford) { fcar.Turn(); } elseif(type==CarType.Honda) { hcar.Turn(); } elseif(type==CarType.Bmw) { bcar.Turn(); } } privatevoidStopCar() { if (type==CarType.Ford) { fcar.Stop(); } elseif(type==CarType.Honda) { hcar.Stop(); } elseif(type==CarType.Bmw) { bcar.Stop(); } } } |
4结构图编辑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
publicinterfaceICar { voidRun(); voidTurn(); voidStop(); } publicclassBmwCar:ICar { publicvoidRun() { Console.WriteLine( "宝马开始启动了" ); } publicvoidTurn() { Console.WriteLine( "宝马开始转弯了" ); } publicvoidStop() { Console.WriteLine( "宝马开始停车了" ); } } publicclassFordCar:ICar { publicvoidRun() { Console.WriteLine( "福特开始启动了" ); } publicvoidTurn() { Console.WriteLine( "福特开始转弯了" ); } publicvoidStop() { Console.WriteLine( "福特开始停车了" ); } } publicclassHondaCar:ICar { publicvoidRun() { Console.WriteLine( "本田开始启动了" ); } publicvoidTurn() { Console.WriteLine( "本田开始转弯了" ); } publicvoidStop() { Console.WriteLine( "本田开始停车了" ); } } publicclassAutoSystem { privateICaricar; publicAutoSystem(ICaricar) { this .icar=icar; } privatevoidRunCar() { icar.Run(); } privatevoidTurnCar() { icar.Turn(); } privatevoidStopCar() { icar.Stop(); } } |
ASP.NET 设计模式中依赖倒置原则的更多相关文章
- 北风设计模式课程---依赖倒置原则(Dependency Inversion Principle)
北风设计模式课程---依赖倒置原则(Dependency Inversion Principle) 一.总结 一句话总结: 面向对象技术的根基:依赖倒置原则(Dependency Inversion ...
- C#软件设计——小话设计模式原则之:依赖倒置原则DIP
前言:很久之前就想动笔总结下关于软件设计的一些原则,或者说是设计模式的一些原则,奈何被各种bootstrap组件所吸引,一直抽不开身.群里面有朋友问博主是否改行做前端了,呵呵,其实博主是想做“全战”, ...
- 《设计模式》-原则三:依赖倒置原则(DIP)
这几天晚上回来都去玩了!没有坚持学习.真的好惭愧! 非常自责 后面一定要坚持 一气呵成 争取每天学一点,把这个学完. 今天主要是看了一下 设计模式中的 原则三: 依赖倒置原则(DIP) 官方是这样 ...
- zt 设计模式六大原则(3):依赖倒置原则
下面说法对不对? 父类将算法(逻辑)封装起来,子类实现细节:这个就叫DIP(依赖倒置:Dependency Inversion Principles),模板模式就是这个原则的实现.如果在父类中加一个t ...
- Java设计模式(2:单一职责原则和依赖倒置原则详解)
一.单一职责原则 不要存在多于一个导致类变更的原因.简单来说,就是一个Class/Interface/Method只负责一项职责. 这句话最为重要的就是这一段:一个Class/Interface/Me ...
- 【设计模式六大原则3】依赖倒置原则(Dependence Inversion Principle)
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象:抽象不应该依赖细节:细节应该依赖抽象. 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成.这种场景下,类 ...
- [设计模式]<<设计模式之禅>>关于依赖倒置原则
依赖倒置原则(Dependence Inversion Principle,DIP)这个名字看着有点别扭,“依赖”还“倒置”,这到底是什么意思?依赖倒置原则的原始定义是 High level modu ...
- 设计模式值六大原则——依赖倒置原则 (DIP)
依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义: 高层模块不应该依赖底层模块,两者都应该依赖其抽象: 抽象不应该依赖细节: 细节应该依赖抽象. 依赖倒置 ...
- 设计模式——依赖倒置原则实例(PHP实现)
<?php /** * 设计模式--依赖倒置原则实例 * Created by DannyWang * jue.wang@yulore.com * 2015-05-05 */ abstract ...
随机推荐
- zookeeper实现分布锁
分布式锁服务在大家的项目中或许用的不多,因为大家都把排他放在数据库那一层来挡.当大量的行锁.表锁.事务充斥着数据库的时候.一般web应用很多的瓶颈都在数据库上,这里给大家介绍的是减轻数据库锁负担的一种 ...
- iOS真机调试——申请开发者证书
申请开发者证书 知道了什么是证书,我们现在就开始申请证书了 1. 找到KeyChain钥匙串,在Mac应用里可以找到 2. 在钥匙串的菜单中选择从证书颁发机构请求证书,填写邮件地址,选择储存到磁盘,放 ...
- 中国区Windows Azure 提供的功能以及与国外的差异
当前中国服务提供的功能 目前,中国服务中包括以下 Azure 功能. 计算 - 虚拟机(用于 IaaS 服务) 计算 - 云服务(用于 PaaS 服务) 计算 - 网站 数据服务 - 存储(用于 Bl ...
- rand(7) 到rand(10)
说有一个rand()函数,等概率生成1-7的随机数. 利用这个函数,构造一个能生成1-10的随机数的函数; //意思大家都懂就好,没说清的就按照想象的走 我想只要输出的10个数概率相同就好,从宏观上看 ...
- Emmet:一个Html/Css快速编辑神器的插件
一.介绍:Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度 二.使用 ...
- em与px之间的换算
任意浏览器的默认字体高度16px(16像素).所有未经调整的浏览器都符合:1em=16px.那么12px=0.75em,10px=0.625em.为了简化font-size的换算,需要在css中的bo ...
- python selenium启动浏览器打开百度搜索
python selenium打开百度搜索 #!usr/bin/python from selenium import webdriver import time browser = webdrive ...
- Yii2 多域名跨域同步登录退出
在平台开发过程中,项目分为前台(frontend)www.xxx.com和后台(backend) yun.xxx.com两部分,绑定两个域名, 我们知道在没有绑定域名的时候前后台可以同步登录和退出,但 ...
- 读取xml格式文件
$v = [xml]get-content d:\vmconfig.xml $v.Domain.Computer.Name =========================== $v.GetElem ...
- APP下载页面(支持微信扫一扫)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...