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 ...
随机推荐
- WebService的优点和基本原理
WebService简介(1)WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应 ...
- lightoj 1013
思路:动态规划.设dp[i][j][k]表示用第一个串的前i隔字符和第二个串的前k隔字符组成长度为i的串的个数,那么:若s1[j+1] == s2[k+1] dp[i+1][j+1][k+1] += ...
- linux驱动程序之电源管理之标准linux休眠和唤醒机制分析(二)
三.pm_test属性文件读写 int pm_test_level = TEST_NONE; static const char * const pm_tests[__TEST_AFTER_LAST ...
- oracle dblink使用
一.dblink介绍 dblink是一个单向的数据库连接,通过设置可以访问其他数据库中的数据跟使用本地数据库中数据一样的感觉,但注意是单向的dblink.例如:A建连B的dblink,A可以访问B的表 ...
- 可在Azure上运行.NET的SDK
本节包含前几个版本的 for .NET 的发行说明.有关早期版本的详细信息,请参阅早期版本:Azure SDK for .NET.有关 SDK 支持和停用的信息,请参阅 Azure SDK for . ...
- Codeforces294B - Shaass and Bookshelf(贪心)
题目大意 给你N本书,每本书由一个厚度t[i](1或者2),宽度w[i],高度都是一样,把一些书竖着放,然后一些书横着放在同一层,就像下图那样放: 问你把所有的书放好之后竖着的书的总厚度是多少? 题解 ...
- 坑爹的IE quirk模式【转】
调试一个页面,ie下面页面css样式很是奇怪,各种失效.找了半天原因不知道怎么回事.最后在调试工具中发现,文档模式为quirk,改成别的(IE 7|8|9)正常. 为什么会自动选择此文档模式呢? 先看 ...
- Stream消息流 和 Stream Grouping 消息流组
- MyBatis Oracle批量更新
<update id="updateProductSerialNo" parameterType="java.util.List"> <for ...
- ARM MIPS PowerPC比较
ARM, MIPS, Power PC的比较 “ARM面向的低端消费类市场,拼的是功耗:PowerPC面向的是中高端市场,比的是性能,好像还没看到谁的手机是PowerPC的,也没有看到谁家企业级以 ...