小白怎么做网站搬家教程,中国顶尖服装设计师,邯郸网站建设小霖,网站编程图设计原则 最重要的#xff1a;开放封闭原则
对扩展开放对修改封闭 工厂模式 用一个工厂函数#xff0c;来创建实例#xff0c;隐藏 new
如 jQuery 的 $ 函数#xff0c;React 的 createElement 函数 单例模式 全局唯一的实例(无法生成第二个)
如 Vuex 和 Redux 的 store… 设计原则 最重要的开放封闭原则
对扩展开放对修改封闭 工厂模式 用一个工厂函数来创建实例隐藏 new
如 jQuery 的 $ 函数React 的 createElement 函数 单例模式 全局唯一的实例(无法生成第二个)
如 Vuex 和 Redux 的 store全局唯一的 dialogmodal JS 是单线程的创建单例很简单Java 是支持多线程的创建单例要考虑锁死线程否则多个线程同时创建单例就重复了(多线程共享进程内存) 代理模式 使用者不能直接访问对象而是访问一个代理层在代理层可以监听 get set 做很多事情
如 ES6 Proxy 实现 Vue3 响应式
var obj new Proxy({}, {get: function (target, propKey, receiver) {console.log(getting ${propKey}!);return Reflect.get(target, propKey, receiver);},set: function (target, propKey, value, receiver) {console.log(setting ${propKey}!);return Reflect.set(target, propKey, value, receiver);}
});观察者模式 发布订阅模式 自定义事件组件卸载时记得清除避免内存泄漏 装饰器模式 原功能不变增加一些新功能(AOP 面向切面编程)
如 ES和Typescript 的 Decorator 语法类装饰器方法装饰器
testable
class MyTestableClass {// ...
}function testable(target) {target.isTestable true;
}MyTestableClass.isTestable // true