// 面向对象 (OO, Object Oriented)
// 面向对象的分析(OOA,Object Oriented Analysis)
// 面向对象的设计(OOD,Object Oriented Design)
// 面向对象的编程(OOP,Object Oriented Programming)
// 面向过程 (procedure-oriented)
//依赖倒置:高层(车)依赖 底层(轮子),应该都依赖抽象
//接口分离: IFlyBird : IBird
//替换原则:之类能够替换父类,即重写,也不能重写相反的东西
//开放-闭合: client ---abstract server-server
//单一原则:圆形,几何 ---长方形 ----绘图和面积
//笛米特:类的封装,只提供必需方法
//合成/聚合:set(Ilight light)
//所有原理可以归纳成:写代码前先想什么东西封成一个对象,然后对象A和B继承不同的接口,然后通过桥接set(ILight light)交互
=========================
//关注表示层
//mvc:ui->command(业务逻辑logicutil)->proxy->datacenter(增删查)->mediator->ui
//mvc:相当于中介者模式,c存了m和v的引用,m和v通过c来调用对方,
//puremvc:mediator存view引用,proxy通过mediator来引用,command存proxy引用,view通过command来调用proxy
//业务逻辑:view为界面的交互,model为数据的读存,command为业务的逻辑指当接收到界面的数据,需要进行判断,然后向数据层提交请求,然后传递结果
//ui->command(数据拼接)->proxy->datacenter(增删查)->mediator(数据拆分)->ui
//数据和ui不一起,防止ui关闭了,数据就没了
//业务逻辑和ui逻辑
=========================================
//业务代表模式:set不一样的字段,返回不一样的对象,对象都继承和重写某个方法
//组合实体模式:一个类里面的setdata和getdata包含了另外两个类的setdata和getdata
//数据访问对象模式:在list里面存放的对象包含了value 和 index
//前端控制器:通过不一样的字段,返回不一样的对象
//拦截过滤模式: 创建多个filter类的子类,然后实现最终的target时,先遍历一次filter类
//服务器定位模式:如果list里面没就创建,然后加入list,如果list里面有就return cache
//传输对象模式:在list里面存对象,对象包括value和index
//puremvc:mediator存view引用,proxy通过mediator来引用,command存proxy引用,view通过command来调用proxy
//业务逻辑:view为界面的交互,model为数据的读存,command为业务的逻辑指当接收到界面的数据,需要进行判断,然后向数据层提交请求,然后传递结果
//ui->command(数据拼接)->proxy->datacenter(增删查)->mediator(数据拆分)->ui
//数据和ui不一起,防止ui关闭了,数据就没了
//业务逻辑和ui逻辑
=========================================
ui->点击左移动->command[ dataCenter.get logicUtil(canAdd(msg)?) sendResult ]->proxy(dataCenter.set)
ui.show <-mediator logicUtil(msg,split) <-proxy(send msg)
客户端传A,服务端传B,dataCenter应该都整合成C
获取点击左移动后的各种数据
======================================================
//业务代表模式:set不一样的字段,返回不一样的对象,对象都继承和重写某个方法
//组合实体模式:一个类里面的setdata和getdata包含了另外两个类的setdata和getdata
//数据访问对象模式:在list里面存放的对象包含了value 和 index
//前端控制器:通过不一样的字段,返回不一样的对象
//拦截过滤模式: 创建多个filter类的子类,然后实现最终的target时,先遍历一次filter类
//服务器定位模式:如果list里面没就创建,然后加入list,如果list里面有就return cache
//传输对象模式:在list里面存对象,对象包括value和index
//创建对象
//工厂模式:Sharp-->Circle factory根据字符串创建子类
//抽象工厂模式:工厂也是被创建对象
//单例模式:GetInstance
//建造者模式:Director(Builder build)包括了hand foot的实现顺序 build包括(hand foot body)的具体实现
//单例模式:GetInstance
//建造者模式:Director(Builder build)包括了hand foot的实现顺序 build包括(hand foot body)的具体实现
//原型模式:实现clone接口,对于从数据库从取出的东西克隆一份
//获得新功能
//桥接:SetLight(ILight light)
//适配:Hotel只接受ICharge ,创建一个类继承ICharge而且实现mp3的功能
//过滤器模式: 接口Criteria有Meet方法,不同标准都继承这个方法,输入list<person> 输出list<person>
//组合模式: Employee类里面包含List<Employee>,可以不断迭代下去
//装饰器模式:circle继承shape实现draw方法,reddecoratedshape继承decorated继承shape ,new reddecoratedshape(Shape circle)
//过滤器模式: 接口Criteria有Meet方法,不同标准都继承这个方法,输入list<person> 输出list<person>
//组合模式: Employee类里面包含List<Employee>,可以不断迭代下去
//装饰器模式:circle继承shape实现draw方法,reddecoratedshape继承decorated继承shape ,new reddecoratedshape(Shape circle)
//外观模式:shapeMarker里面包含circle和square的引用,只暴露drawcircle和drawsquare方法
//享元模式:shape从Map里面取,为null则创建一个,加入map,与对象池有差别,对象池是用完才放进map
//代理模式:proxyImage包含realImage的引用,减少realImage的创建次数,执行display方法才创建
//代理模式:proxyImage包含realImage的引用,减少realImage的创建次数,执行display方法才创建
//对象通信
//责任链:SetNext-设置下级 LogMessage-跑下级 text-本级方法 level-唯一标示
//观察者:new Observer(subject) Subject(list<object> add notify)
//命令模式 : invoke调用command的方法, command封装执行者和执行者的方法,执行者doA和doB
//解释器: TExpression 实现execute方法,AExpression实现传入连个TExpression实现execute方法,实例化两者=定义规则
//迭代器:
//中介者模式:A*100=B,B/100=A,加入中介者存AB的引用,A和B存中介者的引用,通过中介者调用对方
//备忘录模式:setstate(a),savestate(a) = return new state(A)
//状态模式: state.press(light) light(new state) 每个state重写press方法
//空对象: 对于存在的对象赋值realCustom,不存在赋值nullCustom,两者都继承custom
//策略模式: Context(Strategy s) 每个策略继承Strategy 重写excute方法
//模板模式: 父类写好init,start,end的虚方法,并且在play里面调用三者,子类只需重写虚方法
//访问者模式: 多个类继承computerPart且重写accept(visiter v) visiter则同时实现不同类的visiter.visit