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 ...
随机推荐
- Java笔记(四)……常量与变量
常量 常量表示不会改变的数值. Java中常量的分类: 整数常量:所有整数 小数常量:所有小数 布尔型常量:较为特有,只有两个数值,true false 字符常量:将一个数字字母或者符号用单引号(' ...
- bzoj 2754 [SCOI2012]喵星球上的点名(后缀数组)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2754 [题意] 每只喵有名姓,如果被老师点到名或姓的子串都要答道,但每只喵一次点名只答 ...
- 授权给adfs读取ad 在ad服务器上运行 - setspn 命令 -摘自网络
Because the application pool identity for the AD FS 2.0 AppPool is running as a domain user/service ...
- The Basics
“Swift is a new programming language for iOS and OS X app development. Nonetheless, many parts of Sw ...
- mongodb在java驱动包下的操作(转)
推荐几章很有用的文章 java操作参考文档 http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html http://blog.csdn. ...
- js关键字
这已经是我第二次遇到这个问题了..关于关键字,用来做函数的命名,,,在高清上没问题,标清上秒死...页面都出不来...wtf...做个记录.. js关键字http://www.itxueyuan.or ...
- scrollTop 值为 0
由scrollTop兼容问题引起: 在 Firefox 和 IE 中,使用 document.documentElement.scrollTop 获取: 在 Chrome 中,使用 document. ...
- Oracle—用户管理的完全恢复(一)
一.分类 可以分为在非归档模式下和归档模式下的完全恢复,完全恢复主要是针对归档模式下的,在非归档模式下很难做到完全恢复,除非是在做恢复时,联机重做日志还没有被重写. 二.非归档的有关性质 1.在非归档 ...
- CAS SSO对手机应用支持的一种思路
原文地址: http://architecture3.riaos.com/?p=3095368 手机和桌面应用访问CAS,我们不能直接使用CAS提供的web api.不过CAS提供了一个插件,叫CAS ...
- JSON.NET概述
1. JSON.NET概述 当JSON逐渐成为Ajax的标准数据交互格式时,在.NET中处理JSON数据只能使用字符串拼接的方法,十分麻烦,因而催生了JSON.NET这个项目. JSON.NET是一个 ...