最近快要离职了,在公司做的事情少了,有时间就研究下其他的东西,于是乎看了下微软西班牙团队所做的一个NLayerAppV2的项目,跟着自己也写了下这方面的东西,下面是这个搭建的初步框架的基本图
1. Presentation 呈现层,主要考虑用MVC3来做
2. Application Service服务层,主要考虑用WCF来做
3. Business Logic业务逻辑层,主要考虑用来实现相关的业务组装
4. Domain领域层,主要用来做领域模型方面的
5. Infrastructure基础设施层,主要写一些基础的数据操作方法
注意:系统大部分代码的搭建都来源于微软西班牙团队的NLayerAppV2项目,有兴趣的可以自己研究下
如何解决虚拟机安装centos无法全屏显示问题
有时候为了学习linux,需要在虚拟机上进行安装测试。但在安装完成后,会发现存在两个普遍的问题:一是时间与时钟不同步问题。这样会造成开发中很多问题,例如 Makefile 文件会造成一些不必要的重复编译,甚至有些程序拒绝编译。二是虚拟机无法全屏,操作过程中也觉得不方便。
具体方法则是需要在CentOS系统中安装 vmware-tools,其步骤如下:
1.启动CentOS(图形界面方式登陆),并且以管理员的身份登陆。
2.在VMware虚拟机的菜单中点击:虚拟机->安装VMware 工具->install。
3.CentOS自动挂载VMware Tools的虚拟光驱,并显示在桌面。
4.进去VMware Tools的虚拟光驱里,把VMwareTools-5.5.1-19175.tar.gz复制到/tmp目录。
5.进去/tmp目录,把VMwareTools-5.5.1-19175.tar.gz解压到当前目录会产生vmware-tools-distrib文件夹。
6.进入解压缩后的的vmware-tools-distrib目录
[root@localhost ~]# cd /tmp
[root@localhost ~tmp]# cd vmware-tools-distrib
7.执行vmware-install.pl安裝VMWare Tools8.
输入:./vmware-install.pl(执行vmware-install.pl文件)。
8.然后一路“回车”,有时候会提示输入 [yes]
9. 输入reboot命令(重新启动)。
10.问题ok。
原文参考自web开发网:http://www.software8.co/wzjs/
《设计模式 可复用面向对象软件的基础》这本书对外观模式的描述:
意图:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用;
动机:将一个系统分成几个子系统有利于降低系统的复杂性;
下面请看实例代码:
//子系统之一
package com.google.facade;
//航班
public class Flight {
public void scheduled() {
System.out.println("预定机票");
}
public void go() {
System.out.println("飞往目的地");
}
}
//子系统之二
package com.google.facade;
//要去的景点
public class Place {
public void plan() {
System.out.println("计划旅游景点");
}
public void play() {
System.out.println("游玩");
}
}
//子系统三
package com.google.facade;
//饭店
public class Restaurant {
public void eating(){
System.out.println("吃饭");
}
}
//门面角色类
package com.google.facade;
public class Facade {
private Flight flight;
private Place place;
private Restaurant restaurant;
public void travel() {
flight = new Flight();
flight.scheduled();
flight.go();
place = new Place();
place.plan();
place.play();
restaurant = new Restaurant();
restaurant.eating();
}
}
//客户端调用
public class Client {
public static void main(String[] args) {
Facade facade = new Facade();
facade.travel();
}
}
不断提升,持续改进!