您的位置:首页 > 其它

设计模式

2018-03-07 20:21 127 查看

1.设计模式解决的问题

类过于庞大
类在设计时,实现多复用,高内聚,低耦合
容易兼容新接口

2.七大设计原则

单一职责原则
开闭原则
里氏代换原则
依赖倒转原则
接口隔离原则
合成|聚合复用原则
迪尔特原则
  1.单一职责原则   SRP         一个类只有一个职责   
    2.开闭原则
            对扩展开放,对修改关闭

            如何将工资从3000提升到8000的问题

               用代码编写两个数的加减
package com.yufan.operation;
/**
*
* @ClassName: Calculate
* @Description: 实现两个数的加减法
* @author 雨ゆこ
* @date 2018年3月7日
*
*
*/
public class Calculate {
/**
*
* @Title: add
* @Description:加法运算
* @param @param n1
* @param @param n2
* @param @return 参数
* @return double 返回类型
* @throws
*/
public double add(double n1, double n2){
return n1 + n2;
}
/**
*
* @Title: sub
* @Description: 减法运算
* @param @param n1
* @param @param n2
* @param @return 参数
* @return double 返回类型
* @throws
*/
public double sub(double n1, double n2){
return n1 - n2;
}
}    不易扩展,如果添加乘法与除法,需要修改该类,再添加两个方法
    另一种思路



package com.yufan.operation;

/**
*
* @ClassName: Operator
* @Description: 抽象类  操作
* @author 雨ゆこ
* @date 2018年3月7日
*
*
*/
public abstract class Operator {
/**
*
* @Title: getResult
* @Description:  抽象方法 计算两个数运算的结果a
* @param @param n1
* @param @param n2
* @param @return    参数
* @return double    返回类型
* @throws
*/
public abstract double getResult(double n1, double n2);
}
package com.yufan.operation;

/**
*
* @ClassName: Add
* @Description:
* @author 雨ゆこ
* @date 2018年3月7日
*
*
*/
public class Add extends Operator {

@Override
public double getResult(double n1, double n2) {
// TODO Auto-generated method stub
return n1 - n2;
}

}

package com.yufan.operation;
/**
*
* @ClassName: Sub
* @Description:
* @author 雨ゆこ
* @date 2018年3月7日
*
*
*/
public class Sub  extends Operator{

@Override
public double getResult(double n1, double n2) {
// TODO Auto-generated method stub
return n1 + n2;
}

}
3.里氏代换原则 LSP
    子类替换掉父类后程序正常运行且结果跟预期相同才允许继承

拒绝子类有自己的个性
一旦子类有了“个性”,则与父类之间的关系难以调和
会让代码的耦合变得扑朔迷离
4.依赖倒转原则        要针对接口编程,不要针对实现编程
高层模块不应该依赖底层模块,两者应该都以来抽象
5.接口隔离原则    ISP   Interface Segregation Principle

    客户端不应该依赖它不需要的方法
类间的依赖关系应该建立在最小的接口上
6.合成/聚合复用原则   CARP  Composite/Aggregate  Reuse Principle

 合成是强烈的关联,部分(将)和整体(主)生命周期一样,整体(主)对部分(将)有支配权,包括创建和销毁的权利,一般在构造函数中使用
聚合是部分和整体的普通关联,类属性
尽量使用合成/聚合,而不是用继承
 7.迪米特原则  LOD  The law of Demeter

不要和陌生人说话(最少知识原则)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息