劣质代码产生的根源(1) 理论知识的匮乏(续)

1.面向对象编程(Object Oriented Programming)

      面向对象编程把所有的事物都抽象为对象。即使虚拟的存在也要抽象为对象,比如:关系,状态;有些即使在客观世界中不被定义为对象的东西在面向对象的世界里也会被定义为对象,比如:行为,动作。

       和面向过程编程强调:顺序、选择、循环不同,面向对象强调:包含、继承、实现、组合这些关系。面向对象的特点是:封装(Encapsulate)、多态(Polymophism)和继承(Inheritage)。

2.依赖注入(Dependency Injection)

  当依赖是动态的时候,可以通过在外部配置依赖类的名称的方式,通过反射来将依赖逐步引入。依赖注入可以更好地解耦合,使得代码可以实现“热插拔”。

但是依赖注入的问题是,需要配置很多的XML文件。

  依赖注入的另外一个名称叫做控制反转(Inversion of Control)

3.领域特定语言(Domain Specfic Language)

   领域特定语言与面向对象不同,是为了解决某一特定领域的问题而产生的解决方案。下面是一些例子:

   正则表达式(Regular Expression)、状态机(State Machine)、表达式树(Expression Tree)、表达式构造器(Expression Builder)、注解(Annotation)

等等。

4.设计模式(Design Pattern)

   设计模式是由GoF根据长期工作经验总结的一套约定俗成的设计方法。每种模式都有一个名字,常用的23种设计模式。

   状态模式(State)、策略模式(Strategy)、桥接模式(Bridge)、代理模式(Proxy)、中介模式(Mediator)、单例模式(Singleton)、工厂模式(Factory)、享元模式(Flyweight)、抽象工厂(Abstract Factory)、外观模式(Facade)、命令模式(Command)、观察者模式(Observer)、模板方法模式(Template Method)、适配器模式(Adapter)、解释器模式(Interpretor)、迭代模式(Iterator)、职责链模式(Chain of Responsibility)、组合模式(Composite)、装饰者模式(Decorator)、原型模式(Prototype)、备忘录模式(Memonto)、访问者模式(Visitor)

 

 

posted @   史蒂芬.王  阅读(577)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示