单一责任原则
单一职责原则 —— 一个类只负责一个功能领域中的相应职责。
以人的“说话”和“跑”为例:Talk 和 Run
通常的代码——这样如果以后人的“跑”代码的执行逻辑有所改变,要修改 People 中的 Run() 方法
public class People { // 说话 public void Talk(string message) { Console.WriteLine(message); } // 奔跑 public void Run(string message) { Console.WriteLine(message); } }
单一原则代码
使用接口或者抽象类
ITalk接口
namespace ActionName { public interface ITalk { void Talk(string message); } }
IRun接口
namespace ActionName { public interface IRun { void Run(string message); } }
实现接口:ITalk 和 IRun
namespace ActionName { public class TalkAction : ITalk { public void Talk(string message) { Console.WriteLine(message); } } }
namespace ActionName { public class RunAction : IRun { public void Run(string message) { Console.WriteLine(message); } } }
写到具体的类里面
using ActionName; public class People1 { // 如果怕代码运行故障,可设置默认执行方法的类 public People1() { // _talk = new TalkAction(); // _run = new RunAction(); // 方便理解,具体的赋值较为复杂,实践太少,以后补充 } // 解耦合 // 例如:private IRun _run = new RunAction(); // 例如:private ITalk _tlak = new TalkAction(); // 这只是简单的说明 // 如果有新的修改需求,只需要去负责做这件事的类中修该对应的代码 // 这样以后如果有新的 Talk 和 Run 方法要实现, // 只需要继承接口再写一个新的类来负责执行新的方法 private IRun _run; private ITalk _talk; public void Run(string message) { _run.Run(message); } public void Talk(string message) { _talk.Talk(message); } }
如果不是很理解——可以这样理解程序
和电脑一样,主板负责提供接口,然后将兼容的显卡(GPU)、中央处理器(CPU)、声卡、网卡、硬盘、显示器等装上去(假设没有安装上的失误和硬件的损坏),安装好操作系统通上电就可以运行
主板提供了接口将这些硬件集成到一起,硬件各自有自己负责的内容,如果需要“交流(数据交互)”则是通过总线和端口(开始偏题)
主要是想说——
如果显卡坏了,停机就拆下来,修好了再插上去咯;
如果显卡本身的性能太差了,那就换一块更好的显卡咯;
如果显卡的性能没有得到发挥,那就去设置优化一下咯;
所以说只要显卡与其他硬件“交流”的规则不变,显卡有问题找显卡就行了