When we discuss how to design enterprise applications, and what pattern to use, it's important to realize that enterprise applications are all different and that different problems lead to different ways of doing thins.
- B2C online retailer: a very high volume of user -- not only reasonalby efficient in terms of resource used but scalable so that you can increase the load by adding more hardware; The domain logic can be really straightforward; Pretty generic web presentation;
- A system that automates the processing of leasing agreements: less users; complex business logic, a complex business domain such as this is challenging because the rules are so arbitrary; complex UI; A more complex user interaction also lead to more complicated transaction behavior(booking a lease may take an hour or two, during which time the user is ni a logical transaction); Complex database schema
- A simple expense - tracking system for a small company: you have to build it very quickly and you have to bear in mind that it may grow as people want to caculate reimbursement checks, provide reports for the CFO, tie into airline reservation web services, and so on. Trying to use the architecture for eaither of the other two example systems will slow down the development of this one. If a system has business benefits, delaying those benefits costs money. Most enterprise have a lot of them, so the cumulative effect of an inappropriate architecture can be significant.
Each of these three enterprise applications examples has difficulties, and they are different difficulties. As a result you can't come up with a single architecture that will be right for all three. Chooseing an architecture means that you have to understand the particular problems of your system and choose an appropriate design based on that understanding. Many of the patterns are about choise and laternatives. Even when you choose a particular pattern, you will have to modify it to meet your demands. You can't build enterprise software without thinking, and all any book can do is give you more information to base your descision on.
If this appliese to patterns, it also applies to tools, choosing tools. Different tools are best for different purpose.
浙公网安备 33010602011771号