在项目初期,如果我们没有形成一套编码规范,那么大概率会涌现以上的情形,项目越来越大,一个小的功能需求都可能须要耗费几倍的时候来修正,这也便是我们常常能碰着这样一种情形:明明看着很大略的一个小需求,为什么要这么多韶光。以是,系统的整体方案,设计,约束,规范,一定是重中之重。遵照面向工具原则,可以在进行设计方案时,减少缺点设计的产生,从不同的视角提升整体设计的扩展性、容错性。
一些经典的设计原则有SOLID、KISS、YAGNI、DRY、LOD等。而我们常常利用的一些设计模式,如单例模式、工厂模式、代理模式、适配器模式、不雅观察者模式等等都遵守着这些设计原则。以是从另一方面来说,我们也可以做到根据这些原则设计出其他的设计模式。
在这之前,我们暂且先再理解下什么是面向工具程序设计?

当代编程不可绕过的一环,在我们学习编程的最初就提到过了面向工具。面向工具程序设计(Object-oriented Programming,简称OOP),是一种具有工具观点的程序编程范典,实在质因此建立模型表示出来的抽象思维过程和面向工具的方法。
提到面向工具程序,就自然的会遐想到其三大特性:继续、封装和多态。面向工具的核心观点是类和工具,类定义了一类事物的抽象特点,类的定义包含了数据的形式以及对数据的操作。工具是指类的实例,它将工具作为程序的基本单元,将程序和数据封装,用来提升软件的重用性、灵巧性和扩展性。
为什么要利用面向工具?在实用性上来说,上面也提到过,面向工具可以根据其特性来提升软件的重用性、灵巧性和扩展性。在实际业务上,我们在做大的繁芜的项目的程序开拓时,程序的处理流程并非是单一主线,而是错综繁芜的网状构造。
拿电商购买来举例,我们在购买一件商品时,涉及到了商品属性(库存、价格、规格等),然后购买完成后涉及到的订单(订单属性、状态、订单韶光、支付处理),还有财务(财务流水、涉及到退款、库存回滚等)等。再拿商品来说,有不同类型的商品,有虚拟类的商品、也有实物商品,门票、酒店也都可以算商品的一种,但是他们也是都有共通性的。利用这些共通的特性来编写易扩展、易复用和易掩护的代码。
面向工具的编程措辞有哪些?面向工具编程语有C++、Java、Python、Common Lisp、Objective-C、Delphi、Swift、C#、Ruby、PHP、Go等。当然,措辞不仅仅是这些,只是举例一些我们常用的编程措辞。
面向工具中衍生的设计原则有哪些?面向工具设计模式的六大原则:
单一职责原则(Single Responsibilities Principle, SRP)里氏更换原则(Liskov Substitution Principle,LSP)依赖颠倒原则(Dependence Inversion Principle,DIP)接口隔离原则(Interface Segregation Principle,ISP)开闭原则(The Open-Closed Principle, OCP)迪米特法则(Law of Demeter,LoD)其他原则
DRY 原则(Dont Repeat Yourself)KISS 原则(Keep It Simple ,Stupid)YAGNI 原则(You Aren’t gonna Need It)依据设计原则提炼的设计模式有哪些?经典的设计模式有23种,可以分为三大类:创建型、构造型、行为型。
创建型:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式、原型模式构造型:代理模式、桥接模式、装饰者模式、适配器模式、门面模式、组合模式、享元模式行为型:不雅观察者模式、模板模式、策略模式、职责链模式、迭代器模式、状态模式、访问者模式、备忘录模式、命令模式、阐明器模式、中介模式。总结设计原则是在我们进行代码设计的时候供应的一些行为标准和履历总结,对付某些运用处景,该当利用哪种设计模式供应了参考依据。设计模式是我们在平常软件开拓过程中面临一些问题的办理方案,目的紧张是提高代码的扩展性。
参考文档:
1、极客韶光《设计模式之美》
2、《设计模式之禅》