范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

设计模式七大原则

  《设计模式七大原则》单一职责原则:
  接口隔离原则:(Interface Segregation Principle)。
  依赖倒转原则:(Dependence Inversion Principle)。
  里氏替换原则:Liskov Substitution Principle。
  开闭原则:Open Closed Principle 。
  迪米特原则:(Demeter Principle)又叫最少知道原则。
  合成复用原则:composite Resuse Principle)。
  》》本文首发与公众号》》水啾的Java笔记。本文由本地MD比较直接粘贴而来,不想重新排版,如果发现有排版问题,请评论指出。好困啊… 〇、 概述1、参考视频
  参考视频:https://www.bilibili.com/video/BV1gJ411X7uN?p=6&t=991.1 2、设计模式的目的
  目的: 代码重用性。 可读性。 可扩展性。 可靠性。 使程序呈现高内聚、低耦合的特性。 3、设计原则核心思想找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 针对接口编程,而不是针对实现编程。 为了交互对象之间的松耦合设计。 一、单一职责原则:1、单一职责原则介绍
  单一职责原则:对类来说的,即一个类应该只负责一项职责。如果类A负责两个不同的职责:职责1、职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1、A2 。 2、代码演示
  案例:交通工具。  //违法了单一职责原则。  package cn.sj.DesignPatterns.oopPrinciplesSeven;    /**   * Author gzm   * Date 2022/3/13/0013 22:51   * Version 1.0   * Description:oop七大原则之单一职责原则   **/  public class SingleResponsibility {      public static void main(String[] args) {          Vehicle vehicle = new Vehicle();          //以下显然是不合理的。          vehicle.run("摩托车");//摩托车在公路上跑          vehicle.run("轮船");//轮船在公路上跑          vehicle.run("飞机");//飞机在公路上跑      }  }    //交通工具类,  //违法了单一职责原则。应该分解该类。或者增加方法,不同类型工具对应不同的方法  class Vehicle{      public void run(String vehicle){          System.out.println(vehicle+"在公路上跑");      }  }    //分解Vehicle类,符合单一职责原则。  class Roadvehicle{/*run...*/}  class AirVehicle{/*run...*/}  class WaterVehicle{/*run...*/}3、注意事项和细节降低类的复杂度,一个类只负责一项职责。 提高类的可读性、可维护性。 降低变更引起的风险。 通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违法单一职责原则:只有类中的方法数量足够少,可以在方法级别保持单一职责原则。 二、接口隔离原则:1、基本介绍:
  接口隔离原则(Interface Segregation Principle) 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。
  一张图:
  类A通过接口Interface1依赖类B,类C通过接口Interface1依赖类D,如果接口Interface1对于类A和类C来说不是最小接口,那么类B和类D必须去实现它们不需要的方法。
  按隔离原则应当这样处理:将接口Interface1拆分为独立的几个接口,类A和类C分别于它们需要的接口建立依赖关系。也就是采用"接口隔离原则"。 2、演示代码
  演示不符合接口隔离原则  package cn.sj.DesignPatterns.oopPrinciplesSeven.interfaceSegregation;    /**   * 演示不满足接口隔离原则   * Author gzm   * Date 2022/4/09/0009 8:58   * Version 1.0   * Description:   **/  public class InterfaceSegregationPrinciple {      public static void main(String[] args) {          A a = new A();          Interface1 interface1_B = new B();          a.depend1(interface1_B);          a.depend2(interface1_B);          a.depend3(interface1_B);            D d = new D();          Interface1 interface1_C = new C();          d.depend3(interface1_C);          d.depend4(interface1_C);          d.depend5(interface1_C);        }  }    interface Interface1 {      void operation1();      void operation2();      void operation3();      void operation4();      void operation5();  }    class B implements Interface1 {      @Override      public void operation1() {System.out.println("B种的1方法。");}      @Override      public void operation2() {System.out.println("B种的2方法。");}      @Override      public void operation3() {System.out.println("B种的3方法。");}      @Override      public void operation4() {System.out.println("B种的4方法。");}      @Override      public void operation5() {System.out.println("B种的5方法。");}  }    class C implements Interface1 {      @Override      public void operation1() {System.out.println("C种的1方法。");}      @Override      public void operation2() {System.out.println("C种的2方法。");}      @Override      public void operation3() {System.out.println("C种的3方法。");}      @Override      public void operation4() {System.out.println("C种的4方法。");}      @Override      public void operation5() {System.out.println("C种的5方法。");}  }    /**   * A类通过接口interface1依赖(使用)到B类中的1、2、3 方法。   */  class A {      public void depend1(Interface1 interface1 ){interface1.operation1();}      public void depend2(Interface1 interface1 ){interface1.operation2();}      public void depend3(Interface1 interface1 ){interface1.operation3();}  }  /**   * D类通过接口interface1依赖(使用)到C类中的3、4、5 方法。   */  class D {      public void depend4(Interface1 interface1 ){interface1.operation4();}      public void depend5(Interface1 interface1 ){interface1.operation5();}      public void depend3(Interface1 interface1 ){interface1.operation3();}  }
  改进为符合接口隔离原则:将接口1拆分。
  三、依赖倒转原则:1、基本介绍
  依赖倒转原则(Dependence Inversion Principle),也叫依赖倒置原则,是指: 高层模块不应该依赖底层模块,二者都应该依赖其抽象。 抽象不应该依赖细节,细节应该依赖抽象。 依赖倒转(倒置)的中心思想是 面向接口编程 依赖倒装原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定得多。以抽象为基础搭建的架构比以细节为基础的架构要稳定得多。在java中,抽象指的是接口或抽象类,细节就是具体地实现类。 使用接口或抽象类的目的是指定好规范,而不涉及任何具体的操作,把展现细节的任务交给它们的实现类去完成。 2、代码演示 package cn.sj.DesignPatterns.oopPrinciplesSeven;    /**   * 演示不符合依赖倒转原则   * Author gzm   * Date 2022/4/09/0009 10:52   * Version 1.0   * Description:   **/  public class DependenceInversion {      public static void main(String[] args) {          System.out.println("方式1,不符合依赖倒转原则");          Person1 person1 = new Person1();          person1.receive(new Email1());  //方式1不符合依赖倒转原则的电子右键信息…          System.out.println("============================");          System.out.println("方式2,符合依赖倒转原则");          Person2 person2 = new Person2();          person2.receive(new Email2());  //方式2,符合依赖倒转原则的电子右键          person2.receive(new WeXin());  //方式2,符合依赖倒转原则的微信      }  }    class Email1{      public String getInfo(){          return "方式1不符合依赖倒转原则的电子右键信息…";      }  }    /**   * 方式1,比较简单,但是不稳定。如果要接受信息的来源是微信或者短信,那么Person也要增加响应的方法。   */  class Person1{      public void receive(Email1 email){          System.out.println(email.getInfo());      }  }    /**   * 方式2 ,引入一个接口IReceive,类Person2与接口IReceive发生依赖。Email、WeXin等各自实现IReceive接口。   */  interface IReceive{      String getInfo();  }  class Email2 implements IReceive{      @Override      public String getInfo() {          return "方式2,符合依赖倒转原则的电子右键";      }  }  class WeXin implements IReceive{      @Override      public String getInfo(){          return "方式2,符合依赖倒转原则的微信";      }  }  class Person2{      public void receive(IReceive iReceive){          System.out.println(iReceive.getInfo());      }  }  3、依赖关系传递的三种方式3.1 接口传递 //接口传递    /**  * 开关的接口  */  interface IOpenAndClose {      public void open(ITV tv);//抽象方法,接收接口  }    /*  * ITV接口  */  interface ITV {      public void play();  }    /**  * 实现接口  */  class OpenAndCloseImpl implements IOpenAndClose {      public void open(ITV tv){          tv.play();      }  }3.2 构造方法传递 package cn.sj.DesignPatterns.oopPrinciplesSeven;    /**   * 构造方法传递   *   * Author gzm   * Date 2022/4/09/0009 11:32   * Version 1.0   * Description:   **/  public class ThreeTypesDependencies {      public static void main(String[] args) {          OpenAndCloseImpl openAndClose = new OpenAndCloseImpl(new ITV() {              @Override              public void play() {                  System.out.println("开关接口");              }          });          openAndClose.open();      }  }    /**   * 开关的接口   */  interface IOpenAndClose {      public void open();  }    /*   * ITV接口   */  interface ITV {      public void play();  }    /**   * 实现接口   */  class OpenAndCloseImpl implements IOpenAndClose {      private ITV tv;      public OpenAndCloseImpl(ITV tv){          this.tv = tv;      }        public void open(){          tv.play();          System.out.println("构造方法传递");      }  }3.3 setter方式传递 //通过setter方式传递    /**   * 开关的接口   */  interface IOpenAndClose {      public void open();      public void setTv(ITV tv);  }    /*   * ITV接口   */  interface ITV {      public void play();  }    /**   * 实现接口   */  class OpenAndCloseImpl implements IOpenAndClose {      private ITV tv;      public void setTv(ITV tv){          this.tv = tv;      }      public void open(){          tv.paly();      }  }  4 依赖倒转原则的注意事项和细节底层模块尽量都要有抽象类或接口,或者两者都有,程序稳定性更好。 变量的声明类型尽量是抽象类或接口,这样我们的变量引用和实际对象间,就存在一个缓冲层,利于程序扩展和优化。 Fu obj = new new Zi  。继承时遵循里斯替换原则。 四、里氏替换原则:1、OOP中的继承性的思考和说明继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范,虽然它不能强制要求所有的子类必须遵循这些规范,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。 继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到的子类的功能都有可能产生故障。 那么在继承中,如何正确的使用击沉?==》 里氏替换原则 。 2、里氏替换原则介绍里氏替换原则,Liskov Substitution Principle。 如果对每个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有发生变化,那么类型T2是类型T1的子类型。换句话说,所有引用基类的地方必须能透明地使用其子类地对象。 在使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类的方法。 继承实际上让两个类的耦合性增强了,在适当的情况下,可以通过聚合、组合、依赖来解决 问题。 3、代码演示
  一个没有遵循里斯替换原则的代码  package cn.sj.DesignPatterns.oopPrinciplesSeven;    /**   * 一个没有遵循里氏替换原则的例子   *   * Author gzm   * Date 2022/4/11/0011 22:03   * Version 1.0   **/  public class NoLisKov {        public static void main(String[] args){          A a = new A();          System.out.println("11-3=" + a.fun1(11,3));          System.out.println("12-9=" + a.fun1(12,8));            B b = new B();          System.out.println("11-3=" + b.fun1(11,3));          System.out.println("12-9=" + b.fun1(12,8));          System.out.println("11+3+9=" + b.fun2(11,3));      }  }    class A {      public int fun1(int num1, int num2){          return num1 - num2 ;      }  }    class B extends A {      public int fun1(int a ,int b){          return a + b;      }      public int fun2(int a ,int b){          return fun1(a,b) + 9;      }  }
  修改为遵循里氏替换原则的代码:  package cn.sj.DesignPatterns.oopPrinciplesSeven;    /**   * 说明:一个遵循了里氏替换原则的例子   * B类不要继承A类,而是采用组合、集合、依赖。   * Author gzm   * Date 2022/4/11/0011 22:29   * Version 1.0   **/  public class IsLisKov {      //因为B类不再继承A类,因此调用者调用方法时就会很明确要调用谁。  }    class Bass {    }  class A2 extends Bass {      public int fun1(int num1, int num2){          return num1 - num2 ;      }  }    class B2 extends Bass {      //组合。      private final A2 a2= new A2();      public int fun3(int a, int b){          return this.a2.fun1(a,b);      }        public int fun1(int a ,int b){          return a + b;      }      public int fun2(int a ,int b){          return fun1(a,b) + 9;      }  }  五、开闭原则:1、基本介绍开闭原则,Open Closed Principle ,是编程中最基础、最重要的设计原则。 一个程序实体如类,模块和函数应该对扩展开放【对提供方来说的】、对修改关闭【对使用方来说的】。用抽象构建框架,用实现扩展细节。 当程序需要变化时,尽量通过扩展程序实体的行为来实现变化,而不是通过修改已有的代码来实现变化。 编程中遵循其他原则,以及使用设计模式的目的就是遵循开闭原则。 2、代码演示代码1,一个没有遵循开闭原则的例子。
  优点是比较容易理解,简单易操作。
  缺点是违反了设计模式的ocp原则。比如要增加一个图形类,就需要在代码中修改较多的地方。 package cn.sj.DesignPatterns.oopPrinciplesSeven;  /**  * 说明:一个没有遵循开闭原则的例子  * 

* Author gzm * Date 2022/4/12/0012 22:27 * Version 1.0 **/ public class NoOpenClosedPrinciple { public static void main(String[] args) { GraphicEditor graphicEditor = new GraphicEditor(); graphicEditor.drawShape(new Rectangle()); graphicEditor.drawShape(new Circle()); } } /** * 这是一个用于绘图的类,使用方。 */ class GraphicEditor{ //接收 Shape 对象,然后根据Shape的子类绘出不同的图形。 public void drawShape(Shape shape){ if (shape.m_type == 1){ drawRectangle(shape); }else if(shape.m_type == 2){ drawCircle(shape); } } public void drawRectangle(Shape shape){ System.out.println("绘制矩形"); } public void drawCircle(Shape shape){ System.out.println("绘制圆形"); } //如果要增加新功能比如增加一个新图形,就要大修代码。 } /** * 基类,提供者之一 */ class Shape{ int m_type; } /** * 矩形,提供者之一 */ class Rectangle extends Shape { Rectangle(){ super.m_type = 1; } } /** * 圆形,提供者之一 */ class Circle extends Shape{ Circle(){ super.m_type = 2; } }   改进的思路:把创建 Shape 类做成抽象类,并提供一个抽象的方法draw方法,让子类去实现即可。这样当我们需要新的图形时,只需要让新的图形类继承 Shape ,并实现draw 方法即可,使用方的代码就不需要修改 。package cn.sj.DesignPatterns.oopPrinciplesSeven; /** * 说明:一个遵循开闭原则的例子,是 NoOpenClosedPrinciple 的改进. *

* Author gzm * Date 2022/4/12/0012 22:56 * Version 2.0 **/ public class IsOpenClosedPrinciple { public static void main(String[] args) { GraphicEditor2 graphicEditor2 = new GraphicEditor2(); graphicEditor2.drawShape2(new Rectangle2()); graphicEditor2.drawShape2(new Circle2()); graphicEditor2.drawShape2(new Triangle2()); } } /** * 这是一个用于绘图的类,使用者。 */ class GraphicEditor2{ //接收 Shape 对象,然后根据Shape的子类绘出不同的图形。 public void drawShape2(Shape2 shape){ shape.draw(); } } /** * 基类,提供者之一 */ abstract class Shape2{ int m_type; public abstract void draw(); } /** * 矩形,提供者之一 */ class Rectangle2 extends Shape2 { Rectangle2(){ super.m_type = 1; } @Override public void draw() { System.out.println("实现基类Shape2中的抽象方法绘制了矩形。"); } } /** * 圆形,提供者之一 */ class Circle2 extends Shape2{ Circle2(){ super.m_type = 2; } @Override public void draw() { System.out.println("实现基类Shape2中的抽象方法绘制了圆形。"); } } /** * 新增的三角形,提供者之一 */ class Triangle2 extends Shape2{ @Override public void draw() { System.out.println("实现基类Shape2中的抽象方法绘制了三角形。"); } }3、开闭原则的细节六、迪米特法则:1、基本介绍一个对象应该对其他对象保持最少的了解。 类与类关系越密切,耦合度越大。 迪米塔法则(Demeter Principle)又叫最少知道原则。即一个类对自己依赖的类知道的越少越好。也就是说,对于依赖的类不管多复杂,都尽量将逻辑封装在类的内部。对外除了提供的public方法,不对外泄露任何信息。 迪米特法则还有个更简单的定义:只与直接的朋友通信。 直接的朋友【directFriends】:只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系。耦合的方式很多,依赖、关联、组合、聚合等。其中,我们称出现在成员变量、方法参数、方法返回值中的类为直接的朋友,而出现在局部变量中的类不是直接的朋友。也就是说,陌生的朋友不要以局部变量的形式出现在类的内部。 2、代码演示   有一个学校,下属有各个学院和总部,现要求打印出学校总部员工ID和学院员工的id。 package cn.sj.DesignPatterns.oopPrinciplesSeven; import java.util.ArrayList; import java.util.List; /** * 说明:一个不符合迪米特法则的例子。 *

* Author gzm * Date 2022/4/13/0013 22:17 * Version 1.0 **/ public class NoDemeterPrinciple { public static void main(String[] args) { SchoolManager schoolManager = new SchoolManager(); schoolManager.printAllEmployee(new CollegeManager()); } } /** * 学校总部员工。 */ class Employee{ private String id; public void setId(String id){ this.id = id; } public String getId(){ return id; } } /** * 学院员工 */ class CollegeEmployee{ private String id; public void setId(String id){ this.id = id; } public String getId(){ return id; } } /** * 管理学院员工的管理类。 */ class CollegeManager{ public List getAllEmployee(){ //返回学院的所有员工。 List list = new ArrayList(); for (int i = 0; i < 10; i++) { CollegeEmployee emp = new CollegeEmployee(); emp.setId("学院员工id= "+i); list.add(emp); } return list; } } /** * 学校管理类 */ class SchoolManager{ public List getAllEmployee(){ List list = new ArrayList(); for (int i = 0; i < 5; i++) { Employee emp = new Employee(); emp.setId("学校总部员工id= "+i); list.add(emp); } return list; } //CollegeEmployee 不是 SchoolManager 的直接朋友。出现在局部变量中,违反了迪米特法则。 public void printAllEmployee(CollegeManager sub){ List list1 = sub.getAllEmployee(); System.out.println("------学院员工-------"); for (CollegeEmployee e : list1) { System.out.println(e.getId()); } List list2 = this.getAllEmployee(); System.out.println("------学校总部员工-------"); for (Employee e : list2) { System.out.println(e.getId()); } } }   改进:将输出学院员工的方法封装到学院员工管理类中。 你怎么做的,你去做就可以了,你不用让我知道你怎么做。 3、迪米特法则的注意事项迪米特法则的核心是降低类之间的耦合。 但是注意:由于每个类都减少了不必要的依赖,因此迪米特法则只是要求降低类的耦合关系,并不是要求完全没有依赖关系。 七、合成复用原则:   合成复用原则(composite Resuse Principle):尽量使用合成、聚合的方式,而不是继承。


抄书有收益第12天放弃很容易,但坚持一定很酷(苦)以书之名放弃很容易,但坚持一定很酷!坚持到底!最近几天的展现量和阅读量都有点低,导致情绪也有点低落,有点灰心丧气,找不到坚持下去的理由!发了一条微头条,立马有朋友在下面留言千万不要时隔17天,SpaceX首个全游客载人航天团队返航日前有消息显示,美国东部时间4月25日1300,SpaceX载人航天任务AX1已顺利返航。不久前在4月8日,由SpaceX发射的猎鹰9号火箭曾搭载4位旅客前往国际空间站,而此次飞行突变限制可能部分决定跨物种的寿命动物以不同的速度接受突变。动物在它们的细胞中携带突变时钟,这些时钟决定了它们的DNA检测突变的速度。新的研究发现,跨物种,一旦发生一定数量的突变,动物往往会死亡。事实证明,在像人类近地小天体防御系统中国版星球大战来了424,中国航天日当天,国家航天局宣布将组建近地小天体防御系统。依旧遵循字数越少内容越劲爆的原则,人狠话不多!首先了解一下什么是近地小天体所谓近地小天体是指那些对地球有潜在威胁并与华为MateXs2折叠屏预热海报曝光这三大方面或迎来重磅升级在早些时候,华为正式官宣将于4月28日召开华为折叠旗舰及全场景新品发布会,为我们带来全新的折叠屏新机华为MateXs。而随着发布会日期的临近,4月26日,华为官方为新机预热,正式放部分华为手机只能充电到80,华为发布公告将尽快修复4月26日消息,昨天在华为的花粉俱乐部,有部分华为手机用户发帖称自己的手机充电至80就充不进去充不满的情况,另外也有用户反馈使用手机管家清理加速时一直显示正在扫描的情况,这种情况在一加Ace今日正式开售,前辈机皇沦为百元机悲惨让路上周,一加召开新品发布会,推出全新一加王牌,受到广泛关注。4月26日,中国移动获悉,一加王牌今早正式开售,售价10333。6万,起售价2499元。值得一提的是,由于一加Ace新机的诺基亚G21正式登陆印度市场90Hz屏5050mAh电池,约1112元IT之家4月26日消息,据91mobiles报道,诺基亚今日在印度正式发布了G系列新机诺基亚G21。诺基亚G21于2022年2月在欧洲市场推出,目前正式进入印度智能手机市场。IT之辽宁夺冠关键功臣!季后赛大爆发,表态感谢广东,一人成幕后功臣辽宁男篮10082战胜广厦男篮,球队总比分40完成横扫,顺利夺冠,而付豪全场比赛在30分钟出场时间,得到14分4篮板2助攻,而付豪个人的成长成为辽宁男篮夺冠的关键功臣,实现季后赛大孙铭徽最新消息,广厦三叉戟全军覆没,恭喜辽篮,杨鸣超越郭士强4月25日消息,本赛季cba总决赛已经进入到最后的阶段,系列赛前三场比赛已经结束,辽宁队大比分30领先,从两队这三场比赛的表现看,目前这支广厦队面对辽宁队是毫无还手能力,辽宁队只要好消息!胡金秋顺利出院,遗憾缺席CBA总决赛,期待健康归来虽然很多球迷都说本赛季CBA总决赛有些无聊,但毕竟有着一些客观原因,如果不是胡金秋受伤,或许赵岩昊也不能出现意外伤病。每次看着浙江广厦输球,胡金秋的心情都不是很好。不过对于胡金秋来相比高考和考研,足球职业化的求学之路竟更加内卷俗话说十年树木,百年树人,培养一个人才往往需要投入巨大的时间和精力。生活中,我们面对过的最大压力莫过于高考和考研,而经历过同龄人之间最大的内卷也莫过于高考和考研。但这一切与足球的求澳洲被中国评为低风险国家!政府宣布发钱!工党为社区语言学校拨款01中国旅行风险评估公布,澳洲成低风险国家。中国领事服务网最新消息,关于公布海外旅行安全风险等级的通知,澳洲被列为低风险国家!这是继4月中旬澳洲全面解封,国际旅客前往澳洲不再需要提张玉宁回击自媒体我依然每天吃海参,也能面对面教你对抗近日张玉宁发布了一个名叫唐朝的土豆的自媒体此前讽刺国足的视频作品截图,并写道这是我们疫情后第6次归国隔离,这次在海南封闭21天,中午36度直晒1100在训练,就凭你截取了热身的视频人民币股市双杀,中国挑战来了?最近,后台很多战友发来消息,强烈要求谈谈最近的股市汇市。从大家反应看,很多朋友心态有些不太好,主要原因是对当前形势有点摸不清,对未来信心有些不足,接下来不知道怎么做了。今天,结合最刘德华的亲姐穷困潦倒,华仔身家过亿,为何始终不愿接济她?随着时代的发展,越来越多的明星被造星工厂给包装了出来,随着潮流的转变,岁月的流失,很多明星渐渐地暗淡,但总有些人是例外的,作为香港四大天王的刘德华就是其中一个例外!一直以来,天王刘张柏芝晒与俩儿子亲密合照!亲手煲汤太贤惠,Lucas比妈妈高半头近日,张柏芝在自己的社交平台上晒出了自己与儿子们的合照。第一张照,张柏芝与大儿子Lucas拍下合照,照片中张柏芝搂着lucas的肩膀,还将头也凑近过去,两人的姿势十分亲昵。而且14贾乃亮偷税2。6亿元?马思纯现男友是摇滚圈海王?娱乐圈是个大名利场,明星有广大的影响力和号召力,能获得普通人难以获得的名气和利益,因此也就更容易成为社会焦点。娱乐圈的绯闻无时无刻不在出现,有些事后证明为真,有些则不了了之。贾乃亮再读琅琊榜原著你根本不知道,看似不起眼的言豫津有多成功作者淡然琅琊榜这部剧圈粉无数,胡歌把一位多智近妖病体缠绵的麒麟才子演绎得入木三分王凯把一位性格执拗重情重义的皇子演绎得淋漓尽致靳东把一位超然世外风流潇洒的琅琊阁主演绎得活灵活现。相不满守门员表现,巴西球迷现场教扑救近日,巴西一球迷因不满自己主队门将的表现,赛后冲入场内亲自向其示范该怎么扑救。事后他告诉记者,自己业余踢球时也是担任守门员的,因无法忍受自己心爱球队的耻辱表现,一时上头就冲进了球场最具观赏场次却40完结!绿衫军露出冠军相北京时间4月26日上午700,NBA东部季后赛继续进行,篮网在主场迎战凯尔特人,最终,凭借凯尔特人的强悍防守,在客场116112战胜篮网,以总比分40晋级东部半决赛!凯尔特人已经透国羽正赛三连胜!冯彦哲林芳灵首秀成功,郑思维黄雅琼横扫晋级2022年羽毛球亚锦赛在菲律宾马尼拉举行,今天下午3点,首轮正赛正式打响,国羽收获一波三连胜,国羽世青赛混双冠军组合,今年首次参加国际比赛的冯彦哲林芳灵首秀成功,再次配对的混双郑思
总投资超400亿元成都东部新区24个重点项目集中开工9月22日,成都东部新区2022年第四批次重点项目集中开工仪式在东部新区空港新城金茂绿建智慧能源中心项目现场隆重举行。本次集中开工的24个高能级项目,聚焦公园城市品质宜居基本功能国新兴产业集群发力创新驱动后劲十足安徽制造向新而行安徽合肥滨湖国际会展中心,正在举行的2022世界制造业大会上,奇瑞江淮汽车新车型闪亮登场,国仪量子国盾量子本源量子等量子企业发布新技术新产品全球约10的笔记本电脑20的液晶显示屏在油价调整消息今天9月23日,调价后各地9295号汽油售价前一个交易日,国际原油因地缘风险一度溢价3,美布原油分别触及86和92美元桶的一周新高,就连周线也已翻红,3连跌正面临终止,然而数据显示,美国原油库存连续第三周增加,同时美联储也在俞敏洪采访王志纲谈中国房地产,房子多的赶快出手王志纲王志纲,男,汉族,1955年8月出生于贵州,1982年毕业于兰州大学经济系。著名战略咨询专家,智纲智库(王志纲工作室)创始人。曾在社科院从事经济理论研究3年后在新华社任记者1人民币破7,美元胜利了?别急,这是一场持久战,博弈才刚开始今天说点真实的,离岸人民币兑美元汇率跌破7。0关口。8月中期,人民币兑美元汇率从6。7开始下跌,然后6。86。9一路下坡,日前正式跌入7。0的关口。怎么看待?我们不搞死鸭子嘴硬的那英子谈暴力加息,自私的美元霸权又在给全世界出难题视频加载中华声在线全媒体评论员张英当地时间21日,美国联邦储备委员会宣布加息75个基点,这是美联储今年以来第五次加息,也是连续第三次加息75个基点,创自1981年以来的最大密集加息美联储连续大幅加息,世界重大挑战来了美联储果然又加息了,75个基点,这是第三个75个基点,半年时间从0利率提升到3到3。25,加息3,这个力度是非常罕见的。伴随大幅加息的是美元的大幅上涨和其它货币的大幅下跌,以及美国今天你笑了吗?1。她们都叫我别嫁太远,笑死,根本嫁不出去。2。工作学习中,只要遇到一点点麻烦,我就能当场崩溃,美好的东西果然都是脆弱的。3。打了3年王者都骂不赢别人,去驾校考完科目二,回来谁都骂秋风有信,春梦无痕有才,也许不必有财有病,也许不必苦吟我们终究是一群无力反抗秋凉的蛙鸣在雨里聒噪着风花雪月的清贫稀稀落落,也许唠唠叨叨寻找一点点盛夏的光明风吹散了柳絮,雨淹没了浮萍把那固执坚守的春芳知恩图报(原创)滴水之恩,当涌泉相报。知恩图报,善莫大焉。这是自古以来,中华民族的高尚品德。做人,记住别人对自己的好,叫感恩戴德。做人,懂得感恩,知恩图报,方显人品之高雅,人性之美好。做人,受人恩在花儿前沉思一天清晨,我走得很早,便望了望窗外,晨曦将黑夜驱散,把温暖洒向大地,夜消退了。我沿着小河散步,来到了一片树林中,我站在那里静静地听着清晨的声音。欢乐的布谷鸟在歌唱白昼的到来,绿色的