Search Results

Search found 42307 results on 1693 pages for 'solid works'.

Page 5/1693 | < Previous Page | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >

  • How to verify the Liskov substitution principle in an inheritance hierarchy?

    - by Songo
    Inspired by this answer: Liskov Substitution Principle requires that Preconditions cannot be strengthened in a subtype. Postconditions cannot be weakened in a subtype. Invariants of the supertype must be preserved in a subtype. History constraint (the "history rule"). Objects are regarded as being modifiable only through their methods (encapsulation). Since subtypes may introduce methods that are not present in the supertype, the introduction of these methods may allow state changes in the subtype that are not permissible in the supertype. The history constraint prohibits this. I was hoping if someone would post a class hierarchy that violates these 4 points and how to solve them accordingly. I'm looking for an elaborate explanation for educational purposes on how to identify each of the 4 points in the hierarchy and the best way to fix it. Note: I was hoping to post a code sample for people to work on, but the question itself is about how to identify the faulty hierarchies :)

    Read the article

  • Handling array passed to object at creation

    - by cecilli0n
    When creating my object I pass it an array of a row from my database. (everything in the array we will need, disregarding unnecessary elements at sql query level) When I need to access certain array elements from within my class, I do so like $this->row['element'] However, As I continue development, I sometimes forget what exactly is in this passed array.(this itself doesn't seem good) I am wondering if their is a professional approach to dealing with this, Or am I the only one who has these "I wonder whats in the array" thoughts. One approach to tackling this could be that when we originally pass the array, in the constructor, we assign each element of the array to its own variable, but is this considered professional practice? Additionally by doing this, we could make those variables constants, in a attempt at immutability. Overall I am trying to adhere to good software craftsmanship. Regards.

    Read the article

  • Are injectable classes allowed to have constructor parameters in DI?

    - by Songo
    Given the following code: class ClientClass{ public function print(){ //some code to calculate $inputString $parser= new Parser($inputString); $result= $parser->parse(); } } class Parser{ private $inputString; public __construct($inputString){ $this->inputString=$inputString; } public function parse(){ //some code } } Now the ClientClass has dependency on class Parser. However, if I wanted to use Dependency Injection for unit testing it would cause a problem because now I can't send the input string to the parser constructor like before as its calculated inside ClientCalss itself: class ClientClass{ private $parser; public __construct(Parser $parser){ $this->parser=$parser; } public function print(){ //some code to calculate $inputString $result= $this->parser->parse(); //--> will throw an exception since no string was provided } } The only solution I found was to modify all my classes that took parameters in their constructors to utilize Setters instead (example: setInputString()). However, I think there might be a better solution than this because sometimes modifying existing classes can cause much harm than benefit. So, Are injectable classes not allowed to have input parameters? If a class must take input parameters in its constructor, what would be the way to inject it properly? UPDATE Just for clarification, the problem happens when in my production code I decide to do this: $clientClass= new ClientClass(new Parser($inputString));//--->I have no way to predict $inputString as it is calculated inside `ClientClass` itself. UPDATE 2 Again for clarification, I'm trying to find a general solution to the problem not for this example code only because some of my classes have 2, 3 or 4 parameters in their constructors not only one.

    Read the article

  • Gathering IP address and workstation information; does it belong in a state class?

    - by p.campbell
    I'm writing an enterprisey utility that collects exception information and writes to the Windows Event Log, sends an email, etc. This utility class will be used by all applications in the corporation: web, BizTalk, Windows Services, etc. Currently this class: holds state given to it via public properties calls out to .NET Framework methods to gather information about runtime details. Included are call to various properties and methods from System.Environment, Reflection details, etc. This implementation has the benefit of allowing all those callers not to have to make these same calls themselves. This means less code for the caller to forget, screw up, etc. Should this state class (please what's the phrase I'm looking for [like DTO]?) know how to resolve/determine runtime details (like the IP address and machine name that it's running on)? It seems to me on second thought that it's meant to be a class that should hold state, and not know how to call out to the .NET Framework to find information. var myEx = new AppProblem{MachineName="Riker"}; //Will get "Riker 10.0.0.1" from property MachineLongDesc Console.WriteLine("full machine details: " + myEx.MachineLongDesc); public class AppProblem { public string MachineName{get;set;} public string MachineLongDesc{ get{ if(string.IsNullOrEmpty(this.MachineName) { this.MachineName = Environment.MachineName; } return this.MachineName + " " + GetCurrentIP(); } } private string GetCurrentIP() { return System.Net.Dns.GetHostEntry(this.MachineName) .AddressList.First().ToString(); } } This code was written by hand from memory, and presented for simplicity, trying to illustrate the concept.

    Read the article

  • Should library classes be wrapped before using them in unit testing?

    - by Songo
    I'm doing unit testing and in one of my classes I need to send a mail from one of the methods, so using constructor injection I inject an instance of Zend_Mail class which is in Zend framework. Example: class Logger{ private $mailer; function __construct(Zend_Mail $mail){ $this->mail=$mail; } function toBeTestedFunction(){ //Some code $this->mail->setTo('some value'); $this->mail->setSubject('some value'); $this->mail->setBody('some value'); $this->mail->send(); //Some } } However, Unit testing demands that I test one component at a time, so I need to mock the Zend_Mail class. In addition I'm violating the Dependency Inversion principle as my Logger class now depends on concretion not abstraction. Does that mean that I can never use a library class directly and must always wrap it in a class of my own? Example: interface Mailer{ public function setTo($to); public function setSubject($subject); public function setBody($body); public function send(); } class MyMailer implements Mailer{ private $mailer; function __construct(){ $this->mail=new Zend_Mail; //The class isn't injected this time } function setTo($to){ $this->mailer->setTo($to); } //implement the rest of the interface functions similarly } And now my Logger class can be happy :D class Logger{ private $mailer; function __construct(Mailer $mail){ $this->mail=$mail; } //rest of the code unchanged } Questions: Although I solved the mocking problem by introducing an interface, I have created a totally new class Mailer that now needs to be unit tested although it only wraps Zend_Mail which is already unit tested by the Zend team. Is there a better approach to all this? Zend_Mail's send() function could actually have a Zend_Transport object when called (i.e. public function send($transport = null)). Does this make the idea of a wrapper class more appealing? The code is in PHP, but answers doesn't have to be. This is more of a design issue than a language specific feature

    Read the article

  • Is wrapping a third party code the only solution to unit test its consumers? [closed]

    - by Songo
    I'm doing unit testing and in one of my classes I need to send a mail from one of the methods, so using constructor injection I inject an instance of Zend_Mail class which is in Zend framework. Now some people argue that if a library is stable enough and won't change often then there is no need to wrap it. So assuming that Zend_Mail is stable and won't change and it fits my needs entirely, then I won't need a wrapper for it. Now take a look at my class Logger that depends on Zend_Mail: class Logger{ private $mailer; function __construct(Zend_Mail $mail){ $this->mail=$mail; } function toBeTestedFunction(){ //Some code $this->mail->setTo('some value'); $this->mail->setSubject('some value'); $this->mail->setBody('some value'); $this->mail->send(); //Some } } However, Unit testing demands that I test one component at a time, so I need to mock the Zend_Mail class. In addition I'm violating the Dependency Inversion principle as my Logger class now depends on concretion not abstraction. Now is wrapping Zend_Mail the only solution or is there a better approach to this problem? The code is in PHP, but answers doesn't have to be. This is more of a design issue than a language specific feature

    Read the article

  • Am I violating LSP if the condition can be checked?

    - by William
    This base class for some shapes I have in my game looks like this. Some of the shapes can be resized, some of them can not. private Shape shape; public virtual void SetSizeOfShape(int x, int y) { if (CanResize()){ shape.Width = x; shape.Height = y; } else { throw new Exception("You cannot resize this shape"); } } public virtual bool CanResize() { return true; } In a sub class of a shape that I don't ever want to resize I am overriding the CanResize() method so a piece of client code can check before calling the SetSizeOfShape() method. public override bool CanResize() { return false; } Here's how it might look in my client code: public void DoSomething(Shape s) { if(s.CanResize()){ s.SetSizeOfShape(50, 70); } } Is this violating LSP?

    Read the article

  • Tension between the dependency inversion principle and avoiding "new" in C++?

    - by Kazark
    I have seen a lot of advice that it is better to do Type object; than Type* object = new Type(); in C++ whenever possible. I understand the rational behind this and appreciate it. But according to my understanding, to practice dependency inversion requires pointers, e.g.: Type* object = new Implementation();. (Or am I wrong about that?) Is there an inherent tension between the DIP and avoiding new when using C++? If so, what patterns/principles/practices can be used to mitigate this tension?

    Read the article

  • Is this a violation of the Liskov Substitution Principle?

    - by Paul T Davies
    Say we have a list of Task entities, and a ProjectTask sub type. Tasks can be closed at any time, except ProjectTasks which cannot be closed once they have a status of Started. The UI should ensure the option to close a started ProjectTask is never available, but some safeguards are present in the domain: public class Task { public Status Status { get; set; } public virtual void Close() { Status = Status.Closed; } } public ProjectTask : Task { public override void Close() { if (Status == Status.Started) throw new Exception("Cannot close a started Project Task"); base.Close(); } } Now when calling Close() on a Task, there is a chance the call will fail if it is a ProjectTask with the started status, when it wouldn't if it was a base Task. But this is the business requirements. It should fail. Can this be regarded as a violation?

    Read the article

  • Logmein does not work at home?

    - by Littlet-ENG
    I've been using logmein successfully for may situations and have had very good success. Our company has an Log me in Pro account. I have used this to share my desktop with customers. At work, I have had no problem with my laptop. At home, one program (solid-works) that I need to share with my customers, will not display the active screen. I spent 45 min on the phone with both the software for the cad system and logmein support with not help. I need help in narrowing down what the problem is on my computer. The support guys at Solid-works got another remote software to work, so its not the program. I can get the logmein to work at the office so its not the settings of the logmein pro account. The LMI people say its a setting on my computer.? -internet is fast enough at home -can't narrow down the problem -changed graphical settings and that didn't work. Any Suggestions?

    Read the article

  • How to learn how the web works? [closed]

    - by Goma
    I was thinking to start learning ASP.NET Web forms and some of my friends told me that I should learn something else such as ASP.NET MVC or PHP because ASP.NET Web Forms does not learn me how the web works and I will get some misunderstanding of the web if I learn ASP.NET Web Forms. To what extent is that ture? and must I change my path of learning towards ASP.NET MVC or PHP or is it OK if I start with Web Forms?

    Read the article

  • How Orchard works

    - by Bertrand Le Roy
    I just finished writing a long documentation topic on the Orchard project wiki that aims at being a good starting point for developers who want to understand the architecture, structure and general philosophy behind the Orchard CMS. It is not required reading for anyone who only wants to write Orchard modules and themes but hopefully it will help people who want to evaluate the platform and start writing patches. Read it here: http://orchardproject.net/docs/How-Orchard-works.ashx

    Read the article

  • Which email client works best with GMail IMAP?

    - by Ivan
    I use GMail (and I use labels intensively) and because of having to use a very slow Internet connection now I've came to the idea that I should try using a desktop email client. What application (Thunderbird, Evolution, Claws, or some another) works best with GMail via IMAP? First of all I want correct GMail labels support (for example an email client shouldn't think of GMail labels as of independent folders, treating messages with multiple labels as multiple different identical messages in different folders), incl. special GMail labels-folders like bin, spam, drafts and sent.

    Read the article

  • How Parallelism Works in SQL Server

    - by Paul White
    You might have noticed that January was a quiet blogging month for me.  Part of the reason was that I was working on a series of articles for Simple Talk, examining how parallel query execution really works.  The first part is published today at: http://www.simple-talk.com/sql/learn-sql-server/understanding-and-using-parallelism-in-sql-server/ . This introductory piece is not quite as deeply technical as my SQLblog posts tend to be, but I hope there be enough interesting material to make...(read more)

    Read the article

  • My site works with www.example.com but not example.com

    - by toocool
    this is the site that I am going to develop: http://www.juve-news.com/ it works like this but it doesnt when I try to open it without the www prefix. it give me 400 bad request! I have used other web host before now I am trying a new one and I have to add some dns entries like in the picture here: http://cloudcontrol.com/developers/documentation/add-ons/aliases/ I dont know what I have done wrong. If anyone knows what could be the problem then please give me a tip.

    Read the article

  • bumblebee does not work with metacity and KWin, but works with compiz

    - by cpu2
    If I try to launch something with optirun under compiz, it works. If I try to launch something with optirun under KDE or metacity, it gives me: [ 247.384077] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) [ 247.384117] [ERROR]Aborting because fallback start is disabled. If it matters, I'm trying to launch Portal 2 with wine I have: Nvidia GeForce GT540M with optimus Acer Aspire Timeline X Intel core i5 and 3000 Integrated Graphics

    Read the article

  • Sound works but cannot change settings or volume

    - by W. Conrad Walden
    Volume is always on max. The volume indicator is showing three dashes and does not show anything when I click on it. Clicking the "sound" button in settings causes it to recursively reopen settings. pulseaudio --start doesn't help. EDIT: This has only started happening after the upgrade to 13.10 EDIT 2: This is in Unity, yes. EDIT 3: killall unity-panel-service works and does reload the panels, but previous problems persist.

    Read the article

  • How does Google+ embed link works?

    - by Drake
    I am trying to understand how does embed link works in Google+ Stream. I manage a site and usually every post contains some text and at least an image. But when I try to embed the link to a certain article on my blog the embed feature does not show the article text and images, but instead it shows the header image of my site plus some other header text content. Do you know how should I tag or code the article part so that Google+ parser recognize the right thing I want to show?

    Read the article

  • revived closed tab in chrome doesn't work properly, but works correctly in IE and Firefox

    - by Kravlin
    I'm working on a website where information is loaded from a calendar. If a user clicks on a link on the calendar, it displays information about that link. If I close that page, and then re-open it, it works properly on both IE and Firefox, but if I open it in chrome, and click on another item on the calendar it instead errors out. Is there a large difference in how chrome brings back tabs from how IE or Firefox do that would cause this?

    Read the article

  • NTFS volume recognised as "Unallocated Space" but works with Windows

    - by msaspence
    Moving to Ubuntu, I have a drive with windows on a drive with Ubuntu on and 4 other ntfs drives 3 of which appear fine in both systems 1 however works fine on windows (single ntfs volume) but in ubuntu the drive appears in the disk utility with a 134 MB "Microsoft Reserved Partition" and 2TB of Unallocated Space Is there any way I can get this volume to be mounted in Ubuntu with out moving all my data to another driver formatting and then moving back again

    Read the article

  • How to create a custom keyboardlayout that works in all applications

    - by rubo77
    I created a custom keyboardlayout Coffee++ for Linux that works fine in most apps: http://coffeeplusplus.z11.de/phpBB3/viewtopic.php?f=6&t=13&p=34#p34 I created a debian package, that adds the needed changes to the keyboard configuration and creates a shell script which which you can swap between normal QWERTY and Coffee++ The letters all work fine, only the arrow-combinations, for ex. AltGr+J for "Arrow-left" and so on don't work in all applications. How can I make the Arrow-key-combinations work in all apps?

    Read the article

  • Save Time and Money - Create a Website Brief That Works

    If you have been given the task of creating or updating a website for your business or organisation, there are some key questions you need to ask before you get started. Answering these questions will prove to be invaluable in saving you precious time once you contract a web development company, and ensuring you get the kind of website that really works for you.

    Read the article

  • video playback works only as root (ubuntu 13.10 64 bit)

    - by Hybris
    That is, video playback with anything: chrome (html 5), firefox (flash), vlc, totem, smplayer... whatever It works only if the software is started as root otherwise it freezes at the begin Interesting enough, in chrome, you can move the slider to whatever position and see the current frame updated However the video stays stil This started to happen a couple of days ago after an unidentified update Relevant output from chrome run as normal user gives some hint: NVIDIA: could not open the device file /dev/nvidia0 No output coming from firefox or vlc $ ls -l /dev/nvidia0 crw-rw-rw- 1 root root 195, 0 nov 8 21:18 /dev/nvidia0

    Read the article

  • Save Time and Money - Create a Website Brief That Works

    If you have been given the task of creating or updating a website for your business or organisation, there are some key questions you need to ask before you get started. Answering these questions will prove to be invaluable in saving you precious time once you contract a web development company, and ensuring you get the kind of website that really works for you.

    Read the article

< Previous Page | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >