题记——这篇文章可以说是作者的读书笔记,并不是完全的是工厂模式,但我相信如果读者你是一个初学者来读这篇文章一定会比你看一片工厂模式有用。
工厂模式的主旨是在于动态的生产相关的产品,及动态的生成相关类的对象。
设计模式的主旨在于更好的完成好的代码,一个代码的好坏评价不一,设计模式主要关注的是代码的可维护、可扩展、可复用;
如何一个代码的可维护性高呢? 这个问题只能拿出具体的事例才能做出评论。但是我们一致的认为耦合性越低的代码可维护性也越高。
关于这个问题我们在设计模式里有三大原则:
1、单一职责原则
2、开放-封闭原则
3、依赖倒置原则
单一职责原则:
单一原则有不同的解释,如对于一个函数即一个函数只完成一个功能,不要让一个函数承担过的的责任。每多一个责任使得一个函数的逻辑更加复杂;并且每多一个责任就可能是其他责任的进行出现问题,因为这些责任耦合在一起了。
对于一个类而言只有一个引起它变化的原因。[P.S.实际编程中很难实现,所以我们要尽可能的让一个少承担责任。]一个类有多个责任以后相当于将这些职责耦合。一个变化可能会影响其他职责的进行。
开放-封闭原则:
指软件的实体可以扩展但是不可修改。[P.S. 实体指函数、类、模块等]。即对扩展开放,对更改封闭open for extension, closed for modification. 一般的措施是创建抽象来隔离具体业务。好吧,抽象可以说是一类业务。适合程度的抽象才是合适的。
依赖倒置原则:
A.高层模块不应该依赖低层木块。两个都应该依赖抽象。
B.抽象不应该依赖细节,细节应该依赖抽象。
关于这一点原则,个人感觉适可而止。因为这里很可能造成不好的抽象导致程序的可读性下降。值得一提的是检测依赖倒置的可行性可以用另一个原则:里氏替换-子类必须能够替换掉他的父类,并且外部代码不能发现这个不同。
说了这么多废话,言归正转:工厂模式。
上面说了工厂模式的主旨是在于动态的生产相关的产品,及动态的生成相关类的对象。
工厂模式分为三大类简单工厂、工厂模式、抽象工厂;
首先看简单工厂,简单工厂在于工厂类中包含必要的逻辑关系用以动态的建造对象将逻辑与见面分开达到 松耦合 的目的;
下面写一段典型的简单工厂的代码
例:计算器
计算器的代码大家应该都写过
待续。。。明天写